web-dev-qa-db-ja.com

HttpClientへのHttpヘッダーの追加

すべて:

Webサービスにリクエストを送信する前に、HttpClientにhttpヘッダーを追加する必要があります。 (将来のすべてのリクエストに対するHttpClientではなく)個々のリクエストに対してそれをどのように行うのですか?これが可能かどうかはわかりません。

var client = new HttpClient();
var task =
    client.GetAsync("http://www.someURI.com")
    .ContinueWith((taskwithmsg) =>
    {
        var response = taskwithmsg.Result;

        var jsonTask = response.Content.ReadAsAsync<JsonObject>();
        jsonTask.Wait();
        var jsonObject = jsonTask.Result;
    });
task.Wait();
135
Ryan Pfister

HttpRequestMessageを作成し、MethodをGETに設定し、ヘッダーを設定してから、SendAsyncの代わりにGetAsyncを使用します。

var client = new HttpClient();
var request = new HttpRequestMessage() {
                                            RequestUri = new Uri("http://www.someURI.com"),
                                            Method = HttpMethod.Get,
                                        };
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));
var task = client.SendAsync(request)
    .ContinueWith((taskwithmsg) =>
    {
        var response = taskwithmsg.Result;

        var jsonTask = response.Content.ReadAsAsync<JsonObject>();
        jsonTask.Wait();
        var jsonObject = jsonTask.Result;
    });
task.Wait();
217
Darrel Miller

すべてのリクエストで同じヘッダーになる場合または各リクエストの後にクライアントを破棄する場合は、DefaultRequestHeaders.Addオプションを使用できます。

client.DefaultRequestHeaders.Add("apikey","xxxxxxxxx");      
5
Taran