HttpWebResponse 解壓gzip、deflate壓縮


需要使用到兩個Stream的子類:GZipStream、DeflateStream,代碼如下:

       public string GetResponseBody(HttpWebResponse response)
       {
           string responseBody = string.Empty;
           if (response.ContentEncoding.ToLower().Contains("gzip"))
           {
               using (GZipStream stream = new GZipStream(response.GetResponseStream(),CompressionMode.Decompress))
               {
                   using (StreamReaderreader = new StreamReader(stream))
                   {
                       responseBody = reader.ReadToEnd();
                   }
               }
           }
           else if (response.ContentEncoding.ToLower().Contains("deflate"))
           {
               using (DeflateStream stream = new DeflateStream(response.GetResponseStream(),CompressionMode.Decompress))
               {
                   using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                   {
                       responseBody = reader.ReadToEnd();
                   }
               }
           }
           else
           {
               using (Stream stream = response.GetResponseStream())
               {
                   using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                   {
                       responseBody = reader.ReadToEnd();
                   }
               }
           }
           return responseBody;
       }

 


免責聲明!

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



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