HttpClientのヘッダーよりもHttpRequestMessageオブジェクトのヘッダーをいつ使用する必要がありますか?
Authorization(常に変更)といくつかのカスタムヘッダー(常に変更)を追加する必要があります
質問
共通のヘッダー(すべてのリクエストで同じ)をHttpClientに追加し、リクエストベースのヘッダーをHttpRequestMessageオブジェクトに追加する必要がありますか?
//HttpRequestMessage Code
HttpRequestMessage reqmsg =new HttpRequestMessage();
reqmsg.Headers.Authorization =new AuthenticationHeaderValue("some scheme");
reqmsg.Headers.Add("name","value");
//HttpClient Code
HttpClient client =new HttpClient();
client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("some scheme");
client.DefaultRequestHeaders.Add("name", "value");
- どちらが好ましい方法ですか? HttpClientに共通のヘッダー(すべてのリクエストで同じ)を追加する必要があります
- httpRequestMessageオブジェクトへのリクエストベースのヘッダー??
あなたの質問は自動的に答えられます。
DefaultRequestHeaders
はリクエストの一部となるものであり、ヘッダーを何度も追加することを繰り返す必要がないため、プラスになります。一方、HttpRequestMessage.Headers
はそのリクエストの一部にすぎません。
いつ使用する必要がありますか? 2つの例を使用します。
すべてのリクエストの一部としてOAuthベアラートークンを送信する必要があるため、HttpClient.DefaultRequestHeaders
にAuthorization
ヘッダーを設定し、トークンを更新する必要がある場合は、もう一度設定する必要があります。
条件に応じて、JSONまたはXMLとしてシリアル化されたエンティティを送信する必要があります。つまり、リクエストごとにContent-type
ヘッダーを設定します。