2010-03-07 18 views
8

¿Cómo puedo verificar si existe una página en una URL determinada?C# Comprobar URL existen?

tengo este código:

private void check(string path) 
    { 

     try 
     { 
      Uri uri = new Uri(path); 
      WebRequest request = WebRequest.Create(uri); 
      request.Timeout = 3000; 
      WebResponse response; 
      response = request.GetResponse(); 

     } 
     catch(Exception loi) { MessageBox.Show(loi.Message); } 

    } 

Pero eso da un mensaje de error sobre el proxy. :(

+6

echa un vistazo a esta pregunta http://stackoverflow.com/questions/924679/c-how-can-i-check-if-a-url-exists-is-valid –

+2

¿Qué mensaje de error acerca de un proxy? –

+1

Obviamente es un mensaje de error secreto que no puede decirnos. – Foole

Respuesta

0

En una conjetura, sin conocer el mensaje de error específico o ruta, podría intentar colar la WebRequest a un HttpWebRequest y después colocar el WebProxy.

Ver MSDN: HttpWebRequest - Proxy Property

2

Si el proxy necesita autenticar usted con sus credenciales de Windows (por ejemplo, usted está en una red corporativa) utilizar:

WebRequest request=WebRequest.Create(url); 
request.UseDefaultCredentials=true; 
request.Proxy.Credentials=request.Credentials; 
3

en primer lugar, es necesario comprender que su pregunta es al menos dos veces, primero debe cheque Si el servidor responde, por ejemplo, usando ping: esa es la primera comprobación, al hacer esto, considere el tiempo de espera, ¿para qué tiempo considerará que una página no existe?

segundo, intente recuperar la página usando muchos métodos que están disponibles en google, de nuevo, necesita considerar el tiempo de espera; si el servidor tarda mucho en reproducirse, la página puede "estar ahí" pero el servidor está justo debajo toneladas de presión

2
try 
{ 
    Uri uri = new Uri(path); 
    HttpWebRequest request = HttpWebRequest.Create(uri); 
    request.Timeout = 3000; 
    HttpWebResponse response; 
    response = request.GetResponse(); 
    if (response.StatusCode.Equals(200)) 
    { 
     // great - something is there 
    } 
} 
catch (Exception loi) 
{ 
    MessageBox.Show(loi.Message); 
} 

Puede verificar el contenido tipo y longitud, consulte MSDN HTTPWebResponse.

+0

Tengo mejor suerte al formatear mi condicional de la siguiente manera en lugar de lo que me ha proporcionado, entiendo que 200 es lo mismo, pero necesitaba compararlo usando el objeto StatusCode para que funcione igual que el esperado: response.StatusCode.Equals (response.StatusCode.Equals (HttpStatusCode.OK)) – dkroy

Cuestiones relacionadas