打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于HttpWebRequest和HttpWebResponse的应用
 

    最近在为公司产品(ASP.NET B/S结构)进行升级的时候遇到了客户的这样一个需求.
    系统提供会议投票这样一种功能,在会议参与者对此次会议所要研究的合同进行研讨之后,系统把参与者的意见(同意,不同意,有条件同意)和意见的详细信息列出,供会议决策者参考,最后由会议决策者输入决策意见.
    其中每一笔合同都包括很多信息,如:法人资料,兄弟公司信息,担保人信息等等,用户迫切需要保存这一系列信息的当前状态.因为这些信息在未来的系统使用过程中可能会发生变更,比如担保人的名称变更等等.
    但是所有的这些信息是由不同的功能结合起来组成的,如果想把这些信息进行汇总,那么重写所有的信息获取方法是不太可行的,所以直接请求页面,从服务器返回的HTML数据流中获取所需内容也许是一个可行的办法.
    首先在程序中维持一个所有信息请求页面地址的列表,然后循环这个列表,进行信息的获取.
    在程序中用到了System.Net, System.IO命名空间.

public string getPageFromURL(string url)
{
 string content = "";
 // Create a new HttpWebRequest object.Make sure that
 // a default proxy is set if you are behind a fure wall.
//其中,HttpWebRequest实例不使用HttpWebRequest的构造函数来创建,二是使用WebRequest的Create方法来创建.
 HttpWebRequest myHttpWebRequest1 =(HttpWebRequest)WebRequest.Create(url);

 //不维持与服务器的请求状态
 myHttpWebRequest1.KeepAlive=false;
//创建一个HttpWebRequest对象
 //Assign the response object of HttpWebRequest to a HttpWebResponse variable.\
 HttpWebResponse myHttpWebResponse1;
 try
 {
    //根据微软MSDN上所说:"决不要直接创建HttpWebResponse的实例,要使用HttpWebRequest的GetResponse()方法返回的实例."具体的原因我也不清楚,可能HttpWebResponse类的构造函数中没有实现HttpWebResponse实例的代码吧.
  myHttpWebResponse1 = (HttpWebResponse)myHttpWebRequest1.GetResponse();
  //设置页面的编码模式
  System.Text.Encoding utf8 = System.Text.Encoding.Default;
  Stream streamResponse=myHttpWebResponse1.GetResponseStream();
  StreamReader streamRead = new StreamReader(streamResponse, utf8);

  Char[] readBuff = new Char[256];
    //这里使用了StreamReader的Read()方法,参数意指从0开始读取256个char到readByff中.
    //Read()方法返回值为指定的字符串数组,当达到文件或流的末尾使,方法返回0

  int count = streamRead.Read( readBuff, 0, 256 );
  while (count > 0)
  {
   String outputData = new String(readBuff, 0, count);
   content += outputData;
   count = streamRead.Read(readBuff, 0, 256);
  }
  myHttpWebResponse1.Close();
  return(content);
 }
 catch(WebException ex)
 {
  content = "在请求URL为:" + url + "的页面时产生错误,错误信息为" + ex.ToString();
  return(content);
 }
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如果向某网址Post信息,并得到CookieContainer以便以后直接通过验证 - g...
用HttpWebRequest 模拟网站登录
C#获取Nist的美国官方标准时间的解决办法
登录功能代码
HttpWebRequest和HttpWebResponse
HttpWebRequest HttpWebResponse 发送http请求
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服