Есть ли способ определить, происходит ли перенаправление во время веб-запроса?

StackOverflow https://stackoverflow.com/questions/1014368

Вопрос

Я использую HttpWebRequest для очистки Wikipedia.org .Часто на странице будут ссылки на темы, которые были объединены, и поэтому они перенаправляют вас на нужную страницу.

например

http://en.wikipedia.org/wiki/Polish_prisoners_of_war_in_Soviet_Union_ (после_1939)

перенаправляет вас на правильную тему, которая

http://en.wikipedia.org/wiki/Polish_prisoners_of_war_in_the_Soviet_Union_ (после_1939)

Обратите внимание на добавление слова "the".

На этом этапе мне нужно определить, произошло ли перенаправление или нет.Кто-нибудь может подсказать, как я мог бы это сделать?

Спасибо!

Обновить

Я пометил приведенный ниже ответ как отвеченный, потому что технически именно так вы определяете, были ли вы перенаправлены.Проблема, с которой я сталкиваюсь, заключается в том, что Википедия на самом деле не выполняет жесткое перенаправление с кодами ответа http 3xx.Они делают мягкие перенаправления который обслуживает разный контент под одним и тем же URL.Мне придется найти другое решение.

Это было полезно?

Решение

Попробуй это:

if(reponse.ResponseUri != request.RequestUri) {
    //You were redirected
}

Другие советы

Существует свойство под названием "Разрешить автоматические направления" в объекте HttpWebRequest.Если вы отключите это, вы сможете сами следить за перенаправлениями.

Вы также могли бы попробовать проверить HttpWebResponse .Ответчик.

Используйте HttpWebRequest.Адрес свойство, которое явно определено как "URI после завершения любых перенаправлений, которые происходят во время запроса"

Обратите внимание, что это следует использовать вместо аналогичного HttpWebResponse.ResponseUri, как говорится в его документации:

Приложения, которым необходимо получить доступ к последнему перенаправленному ResponseUri должны использовать HttpWebRequest..::..Адрес свойство, а не ResponseUri, поскольку использование свойства ResponseUri может открыть систему безопасности уязвимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top