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;
       }
原文地址:https://www.cnblogs.com/a14907/p/6716195.html