首页 新闻 会员 周边

关于HttpWebRequest的神坑。。。。。

0
悬赏园豆:5 [已解决问题] 解决于 2014-11-19 19:38

请教各位大神一个问题。

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,解压出来正常

落幕残情的主页 落幕残情 | 初学一级 | 园豆:34
提问于:2014-11-19 18:04
< >
分享
最佳答案
0

deflate gzip的压缩模式没有支持

落幕残情 | 初学一级 |园豆:34 | 2014-11-19 19:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册