Самый простой способ сделать это - использовать встроенную автоматическую декомпрессию с классом HttpWebRequest
.
var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com");
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Чтобы сделать это с WebClient
, вы должны создать свой собственный класс, полученный из WebClient
и переопределить метод 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;
}
}
Также смотрите эту ветку SO: Распаковывает ли .NET HttpWebResponse автоматически GZiped и Deflated ответы?