2012-04-24 22 views
72

Actualmente estoy usando HttpWebRequest para obtener un sitio web. Me gustaría usar el patrón de espera, que no está disponible para HttpWebRequests. Encontré la clase HttpClient, que parece ser la nueva clase de trabajadores Http. Estoy usando HttpClient.GetAsync(...) para consultar mi página web. Pero me falta la opción de agregar ClientCredentials como HttpWebRequest.Credentials. ¿Hay alguna forma de dar la información de autenticación HttpClient?HttpClient.GetAsync con credenciales de red

Respuesta

125

se puede pasar una instancia de la HttpClientHandler Class con las credenciales a la HttpClient Constructor:

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

También puede establecer 'UseDefaultCredentials = true' para' HttpClientHandler' – DarkWalker

+7

Esto puede provocar un comportamiento óptimo cuando la autenticación * * básico es requerido http://stackoverflow.com/q/25761214/57428 – sharptooth

+1

He encontrado que querrá establecer handler.ClientCertificateOptions = ClientCertificateOption.Automatic para que realmente se envíen los credititales. –

Cuestiones relacionadas