現在、クロスプラットフォームのサポートに System.Net.Http.HttpClient を使用しています。
リクエストごとにHttpClientオブジェクトをインスタンス化することはお勧めできません。可能な限り再利用する必要があると私は読みました。
サービスのクライアントライブラリの作成中に問題が発生しました。一部のAPI呼び出しには特定のヘッダーが必要ですが、一部のAPI呼び出しにはこの特定のヘッダーを含めないでください。
各リクエストで送信される「DefaultRequestHeaders」のみを操作できるようです。
実際にリクエストを行うときにオプションがありますか? 「client.PostAsync()」は、特定のリクエストのヘッダーのみを変更しますか?
(情報:リクエストはマルチスレッド化できます)。
前もって感謝します!
はい、新しいHttpRequestMessageを作成し、必要なすべてのプロパティを設定してから、それをSendAsyncに渡すことができます。
var request = new HttpRequestMessage() {
RequestUri = new Uri("http://example.org"),
Method = HttpMethod.Post,
Content = new StringContent("Here is my content")
}
request.Headers.Accept.Add(...); // Set whatever headers you need to
var response = await client.SendAsync(request);
HttpContent.Headers を使用します。必要なヘッダーを含むHttpContentインスタンスを作成し、それを PostAsync メソッドに渡すだけです。