Tenemos una herramienta que verifica si una URL determinada es una URL activa. Si una url determinada está activa, otra parte de nuestro software puede eliminar el contenido de la pantalla.Obteniendo el error "El servidor remoto devolvió un error: (403) Prohibido" cuando raspa la pantalla usando HttpWebRequest.GetResponse()
Este es mi código para comprobar si una URL es en vivo
public static bool IsLiveUrl(string url)
{
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5";
webRequest.CookieContainer = new CookieContainer();
WebResponse webResponse;
try
{
webResponse = webRequest.GetResponse();
}
catch (WebException e)
{
return false;
}
catch (Exception ex)
{
return false;
}
return true;
}
Este código funciona perfectamente pero para un sitio en particular alojada en Apache Me estoy haciendo una excepción de web con el siguiente mensaje. "El servidor remoto devolvió un error: (403) Prohibida" En una inspección posterior me encontré con los siguientes datos en el objeto WebException
estado = "ProtocolError" statusDescription = "mal comportamiento"
Esta es la solicitud encabezado "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-US; rv: 1.8.0.6) Gecko/20060728 Firefox/1.5 Host: scenicspares.co.uk Conexión: Keep-Alive"
Este es el encabezado de respuesta "Keep-Alive: timeout = 4, max = 512 Conexión: Keep-Alive Transfer-Encoding: fragmentada Content-Type: text/html Fecha: Jue 13 Ene 2011 10:29:36 GMT Servidor: Apache"
extraje estos encabezados utilizando un reloj en VS2008. El trabajo de marco en uso es 3.5.
Hola @syed, me encuentro con el mismo problema, y ya agregué el código .Accept, pero sigo teniendo este error. ¿Algunas ideas? gracias – swdev
Entendido, debo agregar estas tres líneas, 'webRequest.Method =" GET "; webRequest.UserAgent = "Foo"; webRequest.Accept = "text/html"; 'Servidor diferente puede requerir una configuración diferente – swdev
Gracias swdev. Tu sugerencia parece resolver el problema con algunas páginas de wikipedia. – newman