Как обработать перенаправление HttpWebRequest с не-ascii символами - PullRequest
1 голос
/ 05 октября 2011

Я пишу приложение, которое получает код ответа сервера для набора URL-адресов с помощью класса HttpWebRequest. Сегодня я натолкнулся на URL, который вызывает у меня проблемы.

Проблемный URL-адрес http://blip.tv/file/5312019

Когда я загружаю этот URL в Internet Explorer, он правильно перенаправляет меня на http://blip.tv/sorawut/money-talk-เม่า-นักเขียนการ์ตูนหุ้น-5329374. Но при использовании класса HttpWebRequest возникает проблема с перенаправлением.

Если я установлю AllowAutoRedirect в значение false и проверим метатег Местоположение в коллекции response.Headers, он покажет фанк-URL http://blip.tv/sorawut/money-talk-à¹à¸¡à¹à¸²-à¸à¸±à¸à¹à¸à¸µà¸¢à¸à¸à¸²à¸£à¹à¸à¸¹à¸à¸«à¸¸à¹à¸-5329374. Когда запрос пытается перенаправление на этот URL-адрес вызывает бесконечный цикл перенаправления и, в конечном итоге, приводит к возникновению исключения WebException, в котором говорится «слишком много попыток автоматического перенаправления».

Я попытался вставить этот интересный URL в Internet Explorer, и он автоматически изменил его на правильный URL перенаправления и успешно загрузил страницу.

Итак, что мне нужно сделать, чтобы мой HttpWebRequest возвращал код состояния 200 для этого конкретного URL? (Поскольку это действительный и активный URL после успешного перенаправления)

1 Ответ

1 голос
/ 12 декабря 2011

попробуйте это в вашем конфигурационном файле

<configuration>
   <uri>
     <idn enabled="All" />
     <iriParsing enabled="true" />
   </uri>
</configuration>

Посмотрите раздел Поддержка международных идентификаторов ресурсов здесь -> http://msdn.microsoft.com/en-us/library/system.uri.aspx

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