大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > HttpWebRequest开启gzip压缩的方法

HttpWebRequest开启gzip压缩的方法

关键词:HttpWebRequestgzip压缩  阅读(598) 赞(10)

[摘要]本文是对HttpWebRequest开启gzip压缩的讲解,对学习ASP.NET编程技术有所帮助,与大家分享。

在用HttpWebRequest对象时,一般我们都没有开启gzip压缩,如果服务端返回的数据比较大,这是我们需要开启gzip压缩,怎么开启呢?

1.给HttpWebRequest对象,添加如下Header:

request.Headers.Add("Accept-Encoding", "gzip");

2.对接收到的流进行解码:

private 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;
}


相关评论