HttpClient のレスポンス改善方法

System.Net.HttpにあるHttpClientを使用して通信をする際に設定をしておくとレスポンス速度を改善されることができる方法をメモしておきます。

Http通信時に、gzip、Deflateをヘッダーに設定することでデータを圧縮した状態で受信できるので、通信量を削減することができます。その分、圧縮&解凍のオーバーヘッドはあるのでCPUと通信どちらを取るかという問題はあります。ケースバイケース。

var handler = new HttpClientHandler();
if (handler.SupportsAutomaticDecompression)
{
    handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
}
var client = new HttpClient(handler);
var response = await client.GetAsync("http://yahoo.co.jp");
var content = await response.Content.ReadAsStringAsync();

HttpClientHandlerで設定をして、それをHttpClientのコンストラクタに渡してあげるといい。

設定するとリクエストヘッダーに設定される。

image

レスポンスバイトは4614バイト。

image

ハンドラを渡さないときのリクエストヘッダーは次の通り。

image

レスポンスバイトは、1882バイト。

image

HttpClient のレスポンス改善方法」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください