C# HTTP请求后对gzip页面实现解压缩

1、通过socket页面请求后的receive内容不能经过string后再进行解压缩处理 会造成错误的gzip幻数报错

      推荐使用流处理

2、正确分析返回内容 分割header和页面代码部分

3、对页面代码部分进行解压缩

4、重组header与解压缩后的页面代码

 

解压缩使用net2.0的GZipStream类 很方便

 

     public static string DecompressGzip(Stream stm)
        {
            string strHTML = "";
          
           
            GZipStream gzip = new GZipStream(stm, CompressionMode.Decompress);//解压缩
            using (StreamReader reader = new StreamReader(gzip, Encoding.GetEncoding("gb2312")))//中文编码处理
            {
                strHTML = reader.ReadToEnd();
            }
            
            return strHTML;
        }

 

有些页面请求需要加 Accept-Encoding: gzip, deflate

posted @ 2017-03-17 08:40  Cherry的冬天  阅读(4681)  评论(0编辑  收藏  举报