2010-12-31 9 views

Respuesta

72

La manera más fácil de hacerlo es utilizar el built in automatic decompression con la clase HttpWebRequest.

var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com"); 
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); 
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 

Para hacer esto con un WebClient usted tiene que hacer su propia clase derivada de WebClient y reemplazar el método GetWebRequest().

public class GZipWebClient : WebClient 
{ 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address); 
     request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 
     return request; 
    } 
} 

también ver este hilo SO: Does .NET's HttpWebResponse uncompress automatically GZiped and Deflated responses?

+1

no es necesario especificar la cabecera acceptencoding para la clase derivada webclient? – user3791372

Cuestiones relacionadas