Как определить URL-адрес перенаправления


0

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

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

http://scobleizer.com/feed/

перенаправляет к следующему адресу:

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

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

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

выбросит Exeption для первого URL:

System.Net.WebException: The remote server returned an error: (404) Not Found.

1

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

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

(теперь загружается с кормом)

(редактировать: он был работает, но теперь я получаю 404 .... нечетное)

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

  0

Мне не удалось прочитать окончательный URL-адрес с помощью HttpWebRequest, мне нужно попробовать еще 23 фев. 092009-02-23 14:05:28


1

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

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

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