.NET: Ist es möglich, dass HttpWebRequest gzip-Antworten automatisch dekomprimiert?

Imdiese Antwort, Ich habe beschrieben, wie ich versucht habe, einen GZipStream um den Antwort-Stream in einer HttpWebResponse zu schreiben, um ihn zu dekomprimieren.

Der entsprechende Code sieht folgendermaßen aus:

HttpWebRequest hwr = (HttpWebRequest) WebRequest.Create(url);
hwr.CookieContainer =
    PersistentCookies.GetCookieContainerForUrl(url);
hwr.Accept = "text/xml, */*";
hwr.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
hwr.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-us");
hwr.UserAgent = "My special app";
hwr.KeepAlive = true;

using (var resp = (HttpWebResponse) hwr.GetResponse()) 
{
    using(Stream s = resp.GetResponseStream())
    {
        Stream s2 = s;
        if (resp.ContentEncoding.ToLower().Contains("gzip"))
            s2 = new GZipStream(s2, CompressionMode.Decompress);
        else if (resp.ContentEncoding.ToLower().Contains("deflate"))
            s2 = new DeflateStream(s2, CompressionMode.Decompress);

         ... use s2 ...
    }
}

Gibt es eine Möglichkeit, HttpWebResponse dazu zu bringen, automatisch einen dekomprimierenden Stream bereitzustellen? Mit anderen Worten, eine Möglichkeit für mich, das Folgende aus dem obigen Code zu entfernen:

      Stream s2 = s;
      if (resp.ContentEncoding.ToLower().Contains("gzip"))
          s2 = new GZipStream(s2, CompressionMode.Decompress);
      else if (resp.ContentEncoding.ToLower().Contains("deflate"))
          s2 = new DeflateStream(s2, CompressionMode.Decompress);

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage