WebClient.DownloadString()メソッドでダウンロードされたgzip応答を解凍する簡単な方法はありますか? WebClientでgzip応答を処理する方法について何か提案はありますか?
これを行う最も簡単な方法は、組み込みの 自動解凍 を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は自動的にGZipされた応答と収縮した応答を解凍しますか?