这个类获取全部信息HttpWebRequest

来源:互联网 发布:mac视频怎么全屏 编辑:程序博客网 时间:2024/04/23 19:57

转自其他一些人的,自己改了下。本来是想获得xml信息的。编码问题没解决。索性把获得全部信息的代码先保留着。

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);        }    }
0 0
原创粉丝点击