【转载】HttpWebRequest开启gzip压缩简介

8/10/2015来源:ASP.NET技巧人气:2663

【转载】HttpWebRequest开启gzip压缩简介

在用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;}

转自:http://www.csharpwin.com/csharpspace/13345r5893.shtml