#c#
#c#
Вопрос:
Я пытаюсь прочитать веб-сайт, но сталкиваюсь с ошибкой временного перенаправления 307.
вот мой код :
do
{
try
{
using (XmlReader nfo_catcher = XmlReader.Create(p))
{
SyndicationFeed feed_nfo = SyndicationFeed.Load(reader);
p = "";
}
}
catch (System.Net.WebException e)
{
p = e.Response.ResponseUri.AbsoluteUri;
}
} while(p != "");
Код внутри части DO отлично работает в моем RSS-ридере, но здесь, когда я пытаюсь попасть на веб-сайт, он возвращает мне временную перенаправленную ошибку, которую я безуспешно пытался решить с помощью раздела catch.
Есть идеи, как я могу найти правильный URI?
спасибо, Артанис
Комментарии:
1. URI перенаправления должен быть расположен в заголовках ответа, под
Location
заголовком.2. Спасибо за ваш ответ, я рад, что кто-то понял мой запрос. Я искал вчера весь день и нашел только темы о перенаправлении перенаправлений на веб-серверах… Под заголовком location у меня есть: «X-frame-options» У меня всего 15 заголовков. хотите посмотреть список?
3. Я имел в виду, что
Location
заголовок содержит URI как значение (не буквально под ним в параметрах). Например.p = e.Response.Headers.Location
4. ^^ Хорошо, теперь я получаю хороший URI, но, похоже, я все равно не могу получить доступ к веб-сайту. Поскольку в какой-то момент он начинает давать странные адреса, очевидно, он хочет, чтобы я принимал файлы cookie, я изучу это =) Спасибо вам!
5. хорошо, хорошо. Тогда я опубликую это как ответ.
Ответ №1:
Для перенаправления (код состояния http 301, 302, 303, 307 amp; 308) вы получите ответ, в котором URI находится в Location
заголовке.
В C # вы можете найти заголовок в своем ответе, используя:
context.Response.Headers.Location