Как определить URL перенаправления - PullRequest
0 голосов
/ 22 февраля 2009

Как я могу узнать, где URL перенаправляется программно?

например. Этот URL:

http://scobleizer.com/feed/

перенаправляет на следующий URL:

http://feeds2.feedburner.com/fastcompany/scobleizer

Я пытаюсь прочитать XML-документ фида. Но следующие строки кода:

var doc = new XmlDocument();
doc.Load(url);

выдаст исключение для первого URL:

System.Net.WebException: удаленный сервер вернул ошибку: (404) не Found.

Ответы [ 2 ]

1 голос
/ 21 декабря 2009

Если он дает вам 404, скорее всего, потому что генератор каналов проверяет ваш пользовательский агент или аналогичный, а затем отвечает 404, если он не соответствует требованиям.

Я согласен с Марком: используйте WebRequest и проверьте ответ, он должен быть 301 или 302 (постоянное или временное перенаправление), и тогда он будет содержать целевой URL.

Если ваш код ответа не 301 или 302, то он не перенаправляет вас - опять же это может быть вызвано проверкой серверного агента пользователя.

1 голос
/ 22 февраля 2009

Это не должно бросать. У меня отлично работает:

        var doc = new XmlDocument();
        doc.Load(@"http://scobleizer.com/feed/");

(теперь загружен с фидом)

( изменить : это было работает, но теперь я получаю 404 .... странно)

Если вам нужно знать последний URL, вам, возможно, придется использовать HttpWebRequest вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...