1. ホーム
  2. c#

[解決済み] HttpClientにHttpヘッダを追加する

2022-04-14 11:25:09

質問

ウェブサービスにリクエストを送信する前に、HttpヘッダーをHttpClientに追加する必要があります。個々のリクエストに対してそれを行うにはどうしたらよいでしょうか(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();

解決方法は?

を作成します。 HttpRequestMessage に設定し、メソッドを 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();