请教各位大神一个问题。
Uri uri = new Uri(url); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(uri); myReq.UserAgent = "User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705"; myReq.Accept = "*/*"; //myReq.Headers.Add("Accept-Encoding","gzip,deflate"); myReq.KeepAlive = true; myReq.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5"); HttpWebResponse result = (HttpWebResponse)myReq.GetResponse(); Stream receviceStream = result.GetResponseStream(); StreamReader readerOfStream = new StreamReader(receviceStream, System.Text.Encoding.GetEncoding("gb2312")); string strHTML = readerOfStream.ReadToEnd(); readerOfStream.Close(); receviceStream.Close(); result.Close(); return strHTML;
如果添加上这句代码myReq.Headers.Add("Accept-Encoding","gzip,deflate");
这句代码就无法获取完整的HTML数据流,目标网站IIS6.0无压缩模式。
小弟是用这个去做大规模HTML采集的,肯定要用到GZIP压缩模式。
如果使用myReq.Headers.Add("Accept-Encoding","gzip,deflate");
返回的数据流才3K,解压出来就是错误的。
如果不使用GIZP,返回的数据流有12KB,解压出来正常
deflate gzip的压缩模式没有支持