ネットワーク資格情報を含むHttpClient.GetAsync


93

私は現在HttpWebRequest、ウェブサイトを取得するために使用しています。に記載されていないawaitパターンを使用したいと思いHttpWebRequestsます。HttpClient新しいHttpワーカークラスと思われるクラスを見つけました。私はHttpClient.GetAsync(...)自分のWebページのクエリに使用しています。しかし、のClientCredentialsように追加するオプションがありませんHttpWebRequest.CredentialsHttpClient認証情報を提供する方法はありますか?

回答:


165

資格情報とともにHttpClientHandlerクラスのインスタンスをHttpClientコンストラクタに渡すことができます。

using (var handler = new HttpClientHandler { Credentials = ... })
using (var client = new HttpClient(handler))
{
    var result = await client.GetAsync(...);
}

20
また、設定することができますUseDefaultCredentials = trueのためにHttpClientHandler
DarkWalker

9
とき、これは次善の動作を引き起こす可能性があります基本認証が必要なstackoverflow.com/q/25761214/57428
sharptooth

2
実際にcredititalsを送信するために、handler.ClientCertificateOptions = ClientCertificateOption.Automaticを設定する必要があることがわかりました。
Garr Godfrey、

4
特にサーバーのシナリオでは、HttpClientの静的インスタンスを使用することをお勧めします
James Westgate

3
では、サーバーシナリオでは何をすべきでしょうか。静的インスタンスがない場合に発生する問題に直面していますが、資格情報を渡す必要があります。
スコットチェンバレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.