C # Я застрял в цикле из-за «временного перенаправления ошибки 307»

#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