c# 获取网页源代码(可解决某些页面乱码的问题)

  private string GetHtmlCode(string url)
         {
             string htmlCode;
             HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
             webRequest.Timeout = 30000;
             webRequest.Method = "GET";
             webRequest.UserAgent = "Mozilla/4.0";
             webRequest.Headers.Add("Accept-Encoding", "gzip, deflate");
             HttpWebResponse webResponse = (System.Net.HttpWebResponse)webRequest.GetResponse();
              if (webResponse.ContentEncoding.ToLower() == "gzip")//如果使用了GZip则先解压
              {
                  using (System.IO.Stream streamReceive = webResponse.GetResponseStream())
                  {
                      using (var zipStream =
                          new System.IO.Compression.GZipStream(streamReceive, System.IO.Compression.CompressionMode.Decompress))
                      {
                          using (StreamReader sr = new System.IO.StreamReader(zipStream, Encoding.Default))
                         {
                             htmlCode = sr.ReadToEnd();
                         }
                     }
                 }
             }
             else
             {
                 using (System.IO.Stream streamReceive = webResponse.GetResponseStream())
                 {
                     using (System.IO.StreamReader sr = new System.IO.StreamReader(streamReceive, Encoding.Default))
                     {
                         htmlCode = sr.ReadToEnd();
                    }
                 }
             }
 
             return htmlCode;
        }
posted @ 2012-02-21 17:53  编程笔记  阅读(2158)  评论(0编辑  收藏  举报