HttpClient
を使用する場合のベストプラクティスについて多くのことを読んできました。ほとんどの人は、たとえそれがIDisposable
であっても、アプリケーションの存続期間にわたってそれを再利用することを推奨します。異なるユーザー向けにHttpClientを再利用する
私のWebアプリケーションは、Facebook Graph API、Twitter API、Instagram APIなどのさまざまなAPIと通信しています。
通信するAPIごとに個別のHttpClientを作成することをお勧めします。これは、いくつかのヘッダーを再利用できるためです。
しかし、ここではTwitter APIを例に挙げて説明します。私のWebアプリケーションを使用する各ユーザーには、独自の認証ヘッダー(ユーザーにアクセスするアクセストークン)があります。これは、承認ヘッダをHttpClient
オブジェクトのDefaultRequestHeadersに設定できないことを意味します。
異なる承認ヘッダーを持つ複数のユーザーにHttpClient
を再利用する場合のベストプラクティスは何ですか?
リクエストごとにHttpRequestMessage
オブジェクトを作成し、httpRequestMessageオブジェクトにデフォルトヘッダーであるhttpClient.DefaultRequestHeaders.Authorization
を設定する代わりに、承認ヘッダーを設定できますか?
ありがとうございました。
ありがとう、それはまさに私がやろうとしていたことです。 SendAsyncの終了後にHttpRequestMessageオブジェクトを処分することが無害であるかどうか知っていますか? – raRaRa
@raRaRa - ようこそ。 ContentプロパティのHttpContent型がIDisposableなので、HttpRequestMessageはIDisposableを実装します。私は処分が(特にGET呼び出しのための)何らかの害を引き起こすべき理由を見ません。しかし、私はHttpRequestMessageインスタンスを直接処分することに直接手をつけていません。 –