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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM