这个类获取全部信息HttpWebRequest
2017-02-17 15:48
471 查看
转自其他一些人的,自己改了下。本来是想获得xml信息的。编码问题没解决。索性把获得全部信息的代码先保留着。
4000
class ReadFeed { private string _url; //private System.DateTime _lastModified; // private System.DateTime _lastRssDate; //private Channel channel = new Channel(); #region 公共属性 public string url { get { return _url; } set { _url = value; } } /* public System.DateTime lastModified { get { return _lastModified; } } public System.DateTime lstRssDate { set { _lastRssDate = value; } } // public Channel Channel // { // get { return channel; } // }*/ #endregion public ReadFeed() { } public ReadFeed(string url, System.DateTime dt) { this._url = url; //this._lastRssDate = dt; } //public void Read() public string Read() { int timeOut = 5000; string value = string.Empty; System.Net.HttpWebResponse response = null; Stream data = null; StreamReader sr = null; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(_url); request.Method = "GET"; request.ServicePoint.Expect100Continue = false; //是否使用 Nagle 不使用 提高效率 request.ServicePoint.UseNagleAlgorithm = false; //最大连接数 request.ServicePoint.ConnectionLimit = 65500; //数据是否缓冲 false 提高效率 request.AllowWriteStreamBuffering = false; request.UserAgent = @"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.40607; .NET CLR 1.1.4322)"; request.KeepAlive = true; request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; request.Headers.Add("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3"); request.Headers.Add("Accept-Encoding:gzip,deflate,sdch"); request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8"); request.Headers.Add("Cache-Control", "max-age=0"); if (timeOut != -1) request.Timeout = timeOut; response = (HttpWebResponse)request.GetResponse(); data = response.GetResponseStream(); //sr = new StreamReader(data); if (Get_CH(response.Headers["Content-Type"].ToString())=="GBK") { //MessageBox.Show(Get_CH(response.Headers["Content-Type"].ToString())); sr = new StreamReader(data, System.Text.Encoding.GetEncoding("GB2312")); // xDoc.Load(sr); } else { MessageBox.Show(Get_CH(response.Headers.ToString())); sr = new StreamReader(data, System.Text.Encoding.UTF8); // xDoc.Load(stream); } string str; StringBuilder source = new StringBuilder(); while ((str = sr.ReadLine()) != null) source.Append(str).Append("\r\n"); value = source.ToString(); } catch (WebException e) { MessageBox.Show(e.Message); } finally { if (sr != null) sr.Close(); if (data != null) data.Close(); if (response != null) response.Close(); } return value; //wan /* if(this._lastRssDate<this._lastModified) { XmlNodeList xnList=xDoc.DocumentElement["channel"].SelectNodes("item"); // XmlNodeList xnList=xDoc.SelectNodes("items"); int a= xnList.Count; foreach(XmlNode xNode in xnList) { Item rt=new Item(); rt.title=xNode.SelectSingleNode("title").InnerText.Replace("'","''"); rt.link=xNode.SelectSingleNode("link").InnerText.Replace("'","''"); rt.description=xNode.SelectSingleNode("description").InnerText.Replace("'","''"); try { rt.pubDate=xNode.SelectSingleNode("pubDate").InnerText; } catch { rt.pubDate=this._lastModified.ToString(); } channel.Items.Add(rt); } }*/ }//read public string Create() { return ""; } private string Get_CH(string s) { int l = s.IndexOf("charset=") + 8; return s.Substring(l, s.Length - l); } }
4000
相关文章推荐
- C# HttpWebRequest 绝技 根据URL地址获取网页信息
- C# HttpWebRequest 绝技 根据URL地址获取网页信息
- HttpWebRequest post请求获取webservice void数据信息
- HttpWebRequest / HttpWebResponse 远程获取文件信息
- C# HttpWebRequest 绝技 根据URL地址获取网页信息
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例 [原创]
- HttpWebRequest自动登录网站并获取网站内容(不包含验证码的网站)
- 运用HttpWebRequest与HttpWebResponse获取Web页数据
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例
- HttpWebRequest自动登录网站并获取网站内容
- HttpRequest获取网站信息的程序示例
- 找不到好的方法,如何通过HttpWebRequest获取页面的Encoding。(转)
- 通过HttpWebResponse和HttpWebRequest 获取http地址上的图片
- HttpWebRequest 获取页面
- 利用HttpWebRequest获取网页内容,由于Gzip压缩导致乱码的情况
- HttpRequest获取网站信息的程序示例
- HttpWebRequest获取百度的网页
- HttpRequest获取网站信息的程序示例
- 使用HttpWebRequest访问网页及获取数据