HttpWebRequest 열기 gzip 압축 소개

3212 단어 request
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

좋은 웹페이지 즐겨찾기