29 votes

Décompression de la réponse gzip de WebClient

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?

56voto

BrokenGlass Points 91618

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?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X