私は、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);
}