Necesito enviar un HttpWebRequest a una URL con credenciales básicas en línea de la siguiente manera:Crear un HttpWebRequest para un http: // usuario: contraseña @ doamin/consulta URL
http://user:[email protected]/query
He tratado de establecer la dirección URL como está, pero parece que no pasó las credenciales (obtuvo 403).
tratado de establecer la propiedad de Credenciales HttpWebRequest:
request.Credentials = new NetworkCredentials("username","pasword")
Y sacándolos de la URL (que resulta en http://domain/query
), pero todavía tiene el mismo resultado (403).
El uso de la URL directamente desde cualquier navegador se realizó correctamente, por lo que las credenciales son correctas.
¿Qué me estoy perdiendo?
[ACTUALIZACIÓN - RESPUESTA]
Aquí está el código que funcionó para mí:
string credentials = "username:password";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(formattedUrl);
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Probé el código que sugirió, pero no funcionó. Mirando la solicitud con Fiddler, no veo los credenciales enviados ... – sternr
Nota interesante, los Uri que creo utilizan la siguiente estructura: "http://www.domain.com", tratando de crear un Uri sin http: // prefix failed – sternr