2012-04-24 6 views
72

Ich verwende derzeit HttpWebRequest, um eine Website zu erhalten. Ich möchte das Abwarten-Muster verwenden, das nicht für HttpWebRequests angegeben ist. Ich habe die Klasse HttpClient gefunden, die die neue Http-Worker-Klasse zu sein scheint. Ich verwende HttpClient.GetAsync(...), um meine Webseite abzufragen. Aber mir fehlt die Option ClientCredentials wie HttpWebRequest.Credentials hinzuzufügen. Gibt es eine Möglichkeit, die Authentifizierungsinformationen HttpClient zu geben?HttpClient.GetAsync mit Netzwerkanmeldeinformationen

Antwort

125

Sie können eine Instanz der HttpClientHandler Class mit den Anmeldeinformationen an die HttpClient Constructor passieren:

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

Sie auch 'UseDefaultCredentials = true' für' einstellen HttpClientHandler' – DarkWalker

+7

Dieses suboptimales Verhalten verursachen kann, wenn * Basis * Authentifizierung erforderlich http://StackOverflow.com/Q/25761214/57428 – sharptooth

+1

Ich habe festgestellt, dass Sie möchten, setzen Sie handler.ClientCertificateOptions = ClientCertificateOption.Automatic, um tatsächlich die Credits gesendet haben. –

Verwandte Themen