HttpClient のレスポンス改善方法

投稿者: | 7月 22, 2015

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件のフィードバック

  1. ピンバック: jsonを圧縮して送ろう | IT技術情報局

コメントを残す

メールアドレスが公開されることはありません。

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