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のコンストラクタに渡してあげるといい。
設定するとリクエストヘッダーに設定される。
レスポンスバイトは4614バイト。
ハンドラを渡さないときのリクエストヘッダーは次の通り。
レスポンスバイトは、1882バイト。
ピンバック: jsonを圧縮して送ろう | IT技術情報局