问:如何在已有ASP.net页面中,去请求远程WEB站点,并能传参,且得到请求所响应的结果。用下边的小例子讲解具体功能的实现:
首先,我们想要请求远程站点,需要用到HttpWebRequest类,该类在System.Net命名空间中,所以需要引用一下。另外,在向请求的页面写入参数时需要用到Stream流操作,所以需要引用System.IO命名空间。
以下为Get请求方式:
Uri uri = new Uri("http://www.cnsaiko.com/");//创建uri对象,指定要请求到的地址 if (uri.Scheme.Equals(Uri.UriSchemeHttp))//验证uri是否以http协议访问 { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);//使用HttpWebRequest类的Create方法创建一个请求到uri的对象。 request.Method = WebRequestMethods.Http.Get;//指定请求的方式为Get方式 HttpWebResponse response = (HttpWebResponse)request.GetResponse();//获取该请求所响应回来的资源,并强转为HttpWebResponse响应对象 StreamReader reader = new StreamReader(response.GetResponseStream());//获取该响应对象的可读流 string str = reader.ReadToEnd(); //将流文本读取完成并赋值给str response.Close(); //关闭响应 Response.Write(str); //本页面输出得到的文本内容 Response.End(); //本页面响应结束。 }
以下为POST请求方式:
Uri uri = new Uri("http://www.cnsaiko.com/Admin/Login.aspx?type=Login");//创建uri对象,指定要请求到的地址,注意请求的地址为form表单的action地址。 if (uri.Scheme == Uri.UriSchemeHttp)//验证uri是否以http协议访问 { string name = Server.UrlEncode("张三");//将要传的参数进行url编码 string pwd = Server.UrlEncode("123"); string data = "UserName=" + name + "&UserPwd=" + pwd; //data为要传的参数,=号前边的为表单元素的名称,后边的为要赋的值;如果参数为多个,则使用"&"连接。 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.Method = WebRequestMethods.Http.Post;//指定请求的方式为Post方式 request.ContentLength = data.Length; //指定要请求参数的长度 request.ContentType = "application/x-www-form-urlencoded"; //指定请求的内容类型 StreamWriter writer = new StreamWriter(request.GetRequestStream()); //用请求对象创建请求的写入流 writer.Write(data); //将请求的参数列表写入到请求对象中 writer.Close(); //关闭写入流。 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string str = reader.ReadToEnd(); response.Close(); Response.Write(str); Response.End(); }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索对象
, httpwebrequest
, uri
, post传参
, request
, httpwebresponse
, response
, HttpWebResponse
, 远程请求
, 请求方式
, 页面请求
web地址传参
,以便于您获取更多的相关知识。