J'ai une table dans ma base de données qui contient les URL de certains sites Web. Je dois ouvrir ces URL et vérifier certains liens sur ces pages. Le problème est que certaines URL sont redirigées vers d'autres URL. Ma logique échoue pour de telles URL.Récupération de l'URL redirigée à partir de l'URL d'origine
Existe-t-il un moyen par lequel je peux transmettre ma chaîne d'URL d'origine et récupérer l'URL redirigée?
Exemple: Je suis en train avec cette URL: http://individual.troweprice.com/public/Retail/xStaticFiles/FormsAndLiterature/CollegeSavings/trp529Disclosure.pdf
Il est redirigé vers celui-ci: http://individual.troweprice.com/staticFiles/Retail/Shared/PDFs/trp529Disclosure.pdf
J'ai essayé d'utiliser le code suivant:
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"));
}
Lorsque j'exécute la le code ci-dessus me donne HttpStatusCodeOk
. Je suis surpris de voir pourquoi il ne s'agit pas d'une redirection. Si j'ouvre le lien dans Internet Explorer, il redirigera vers une autre URL et ouvrira le fichier PDF.
Quelqu'un peut-il m'aider à comprendre pourquoi cela ne fonctionne pas correctement pour l'exemple d'URL? D'ailleurs, j'ai vérifié avec l'URL de Hotmail (http://www.hotmail.com) et il renvoie correctement l'URL redirigée.
Merci,
Suppression req.AllowAutoRedirect = false; n'aide pas – user85594
Je comprends votre point de javascript redirection, mais quand j'utilise myResp.ResponseUri.AbsoluteUri il me donne l'URL d'origine au lieu d'un redirigé. Y a-t-il un autre moyen d'obtenir l'URL redirigée? – user85594
L'URL en question renvoie toujours la même URL, car elle ne redirige pas. La redirection * apparente * n'est que Javascript, et vous devrez évaluer Javascript pour le détecter. –