2010-10-01 11 views
6

Digamos que si coloco www.abc.com en el navegador, el navegador se redirige automáticamente a www.xyz.com. Necesito obtener esa URL de redirección del lado del servidor. Es decir, si www.abc.com devuelve un URL de redireccionamiento www.xyz.com, ¿cómo puedo solicitar esta URL de redireccionamiento (www.xyz.com) desde la URL original (www.abc.com)?Cómo obtener una respuesta de redireccionamiento

Respuesta

18

He aquí un fragmento de un rastreador web que muestra cómo manejar las redirecciones:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 
    webRequest.AllowAutoRedirect = false; // IMPORTANT 
    webRequest.UserAgent = ...; 
    webRequest.Timeout = 10000;   // timeout 10s 

    // Get the response ... 
    using (webResponse = (HttpWebResponse)webRequest.GetResponse()) 
    { 
    // Now look to see if it's a redirect 
    if ((int)webResponse.StatusCode >= 300 && (int)webResponse.StatusCode <= 399) 
    { 
     string uriString = webResponse.Headers["Location"]; 
     Console.WriteLine("Redirect to " + uriString ?? "NULL"); 
     ... 
    } 
    } 
+0

funcionó a la perfección. thnx. – Rahatur

+1

Por alguna razón mi edición no fue aceptada ... Llamar 'Close()' de esa manera es una mala práctica, debería usar 'using' en su lugar. –

+1

esto no funciona para mí. Obtengo un valor nulo aunque puedo conectarme al recurso –

Cuestiones relacionadas