c# - headers - Descomprimir la respuesta de gzip de WebClient
webclient examples c# (1)
La forma más fácil de hacerlo es usar la descompresión automática incorporada 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
, debe crear su propia clase derivada de WebClient
y anular 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 vea este hilo SO: ¿HttpWebResponse de .NET descomprime automáticamente las respuestas GZiped y Deflated?
¿Hay alguna manera rápida de descomprimir la respuesta de gzip descargada con el método WebClient.DownloadString ()? ¿Tiene alguna sugerencia sobre cómo manejar las respuestas de gzip con WebClient?