Tengo una tabla en mi base de datos que contiene las direcciones URL de algunos sitios web. Tengo que abrir esas URL y verificar algunos enlaces en esas páginas. El problema es que algunas URL se redireccionan a otras URL. Mi lógica está fallando para tales URL.Obtener la URL redirigida desde la URL original
¿Hay alguna manera de pasar la secuencia URL original y recuperar la dirección URL redirigida?
Ejemplo: Estoy intentando con esta URL: http://individual.troweprice.com/public/Retail/xStaticFiles/FormsAndLiterature/CollegeSavings/trp529Disclosure.pdf
Se pone redirigido a éste: http://individual.troweprice.com/staticFiles/Retail/Shared/PDFs/trp529Disclosure.pdf
He intentado utilizar siguiente código:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Uris);
req.Proxy = proxy;
req.Method = "HEAD";
req.AllowAutoRedirect = false;
HttpWebResponse myResp = (HttpWebResponse)req.GetResponse();
if (myResp.StatusCode == HttpStatusCode.Redirect)
{
MessageBox.Show("redirected to:" + myResp.GetResponseHeader("Location"));
}
Cuando ejecuto el el código de arriba me da HttpStatusCodeOk
. Me sorprende por qué no está considerando una redirección. Si abro el enlace en Internet Explorer, se redireccionará a otra URL y se abrirá el archivo PDF.
¿Alguien me puede ayudar a entender por qué no funciona correctamente para la URL de ejemplo?
Por cierto, lo comprobé con la URL de Hotmail (http://www.hotmail.com) y devuelve correctamente la URL redirigida.
Gracias,
Extracción req.AllowAutoRedirect = false; no ayuda – user85594
Entiendo tu punto de redireccionamiento de JavaScript, pero cuando uso myResp.ResponseUri.AbsoluteUri me da la URL original en lugar de redirigir una. ¿Hay alguna otra forma de obtener la URL redirigida? – user85594
La URL en cuestión siempre devolverá la misma URL, porque no redirige. La * redirección * aparente es solo Javascript, y usted debería evaluar Javascript para detectarlo. –