Existe-t-il un moyen rapide de décompresser la réponse gzip téléchargée avec la méthode WebClient.DownloadString ()? Avez-vous des suggestions sur la façon de gérer les réponses gzip avec WebClient?
Réponse
Trop de publicités?La façon la plus simple de le faire est d'utiliser le construit en décompression automatique avec l' HttpWebRequest
classe.
var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com");
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Pour ce faire, avec un WebClient
vous avez à faire votre propre classe dérivée de l' WebClient
et remplacer l' GetWebRequest()
méthode.
public class GZipWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
return request;
}
}
Voir aussi ce fil: Ne .NET HttpWebResponse décompresser automatiquement GZiped et Dégonflé réponses?