У меня есть таблица в моей базе данных, содержащая URL-адреса некоторых веб-сайтов. Мне нужно открыть эти URL-адреса и проверить некоторые ссылки на этих страницах. Проблема в том, что некоторые URL-адреса перенаправляются на другие URL-адреса. Моя логика не подходит для таких URL-адресов.
Есть ли способ передать исходную строку URL-адреса и вернуть перенаправленный URL-адрес?
Пример: я пытаюсь использовать этот URL: http://individual.troweprice.com/public/Retail/xStaticFiles/FormsAndLiterature/CollegeSavings/trp529Disclosure.pdf
Он перенаправляется на этот: http://individual.troweprice.com/staticFiles/Retail/Shared/PDFs/trp529Disclosure.pdf
Я попытался использовать следующий код:
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"));
}
Когда я выполняю код выше, он дает мне HttpStatusCodeOk
. Я удивлен, почему он не рассматривает это перенаправление. Если я открою ссылку в Internet Explorer, она перенаправит другой URL-адрес и откроет файл PDF.
Может кто-нибудь помочь мне понять, почему он не работает правильно для URL-адреса примера?
Кстати, я проверил с URL Hotmail (http://www.hotmail.com), и он правильно возвращает перенаправленный URL.
Спасибо,