httpClient.GetAsync 使用時にヘッダーを追加する 質問する

httpClient.GetAsync 使用時にヘッダーを追加する 質問する

私は、Windows ストア アプリ プロジェクトで、Apiary.io の他の同僚が作成した API を実装しています。

実装する必要があるメソッドの例を次に示します。

var baseAddress = new Uri("https://private-a8014-xxxxxx.apiary-mock.com/");

using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
    using (var response = await httpClient.GetAsync("user/list{?organizationId}"))
    {
        string responseData = await response.Content.ReadAsStringAsync();
    }
}

この方法や他のいくつかの方法では、以前に取得したトークンを含むヘッダーが必要です。

ここで私が言及しているヘッダーを含む Postman (Chrome 拡張機能) の画像を示します。ここに画像の説明を入力してください

リクエストに Authorization ヘッダーを追加するにはどうすればよいですか?

ベストアンサー1

後の回答ですが、誰もこの解決策を提示しなかったため...

HttpClientヘッダーを に追加してインスタンスに直接設定したくない場合はDefaultRequestHeaders(そのヘッダーを使用して行うすべてのリクエストに送信しないようにするため)、リクエストごとにヘッダーを設定できます

ただし、入力にインスタンスSendAsync()を受け取る唯一のメソッド(ヘッダーの構成を可能にする)を使用する必要があります。HttpRequestMessage

これは、再利用したい場合にHttpClient適したソリューションです。これは、

次のように使用します:

using (var requestMessage =
            new HttpRequestMessage(HttpMethod.Get, "https://your.site.com"))
{
    requestMessage.Headers.Authorization =
        new AuthenticationHeaderValue("Bearer", your_token);
    
    await httpClient.SendAsync(requestMessage);
}

おすすめ記事