欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

ASP.net页面中请求远程Web站点

创建时间:2011年08月13日 08:52  阅读次数:(4628)
分享到:
有朋友问到,如何在已有ASP.net页面中,去请求远程WEB站点,并能传参,且得到请求所响应的结果。用下边的小例子讲解具体功能的实现:
首先,我们想要请求远程站点,需要用到HttpWebRequest类,该类在System.Net命名空间中,所以需要引用一下。另外,在向请求的页面写入参数时需要用到Stream流操作,所以需要引用System.IO命名空间。

以下为Get请求方式:
Uri uri = new Uri("http://www.lmwlove.com");//创建uri对象,指定要请求到的地址  
if (uri.Scheme.Equals(Uri.UriSchemeHttp))//验证uri是否以http协议访问
{  
    //使用HttpWebRequest类的Create方法创建一个请求到uri的对象。 
    HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create(uri);

    //指定请求的方式为Get方式 
    request.Method = WebRequestMethods.Http.Get;

    //获取该请求所响应回来的资源,并强转为HttpWebResponse响应对象 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    //获取该响应对象的可读流 
    StreamReader reader = new StreamReader(response.GetResponseStream());

    //将流文本读取完成并赋值给str 
    string str = reader.ReadToEnd(); 
    response.Close(); //关闭响应 
    Response.Write(str); //本页面输出得到的文本内容 
    Response.End(); //本页面响应结束。 

}
 

以下为POST请求方式:
//创建uri对象,指定要请求到的地址,注意请求的地址为form表单的action地址。  
Uri uri = new Uri("http://www.lmwlove.com/Ad/Index.aspx?type=Login");
if (uri.Scheme == Uri.UriSchemeHttp)//验证uri是否以http协议访问 
{
    string name = Server.UrlEncode("张三");//将要传的参数进行url编码 
    string pwd = Server.UrlEncode("123"); 

    //data为要传的参数,=号前边的为表单元素的名称,后边的为要赋的值;如果参数为多个,则使用"&"连接。 
    string data = "UserName=" + name + "&UserPwd=" + pwd; 
    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();  
}
来源:51CTO
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 36+10=? 的结果(结果是:46)
结  果: