如何使用非ascii字符处理HttpWebRequest重定向

时间:2011-10-05 00:38:21

标签: httpwebrequest

我正在编写一个应用程序,它通过使用HttpWebRequest类获取一组URLS的服务器响应代码。我今天遇到了一个导致我出现问题的网址。

有问题的网址是http://blip.tv/file/5312019

当我在Internet Explorer中加载此网址时,它正确地将我重定向到 http://blip.tv/sorawut/money-talk-เม่า - นักเขียนการ์ตูนหุ้น-5329374 。但是在使用HttpWebRequest类时,它有重定向问题。

如果我将 AllowAutoRedirect 设置为false并检查response.Headers集合中的位置元标记,则会显示时髦的网址 http:// blip。电视/ sorawut /钱通话à¹à¸¡à¹à¸²-AA±à¸à¹à¸à¸μยà¸à¸à¸²à¸£à¹à¸à¸¹à¸à¸«一à¹à¸-5329374 即可。当请求尝试重定向到此URL时,它会导致无限重定向循环并最终抛出WebException,说“尝试了太多的自动重定向”。

我尝试将这个时髦的URL粘贴到Internet Explorer中,并自动将其更改为正确的重定向URL并成功加载页面。

那么,我需要做些什么才能让我的HttpWebRequest为这个特定的URL返回200的状态代码? (因为它是成功重定向后的有效且有效的URL)

1 个答案:

答案 0 :(得分:1)

在配置文件中尝试此操作

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

请查看国际资源标识符支持部分 - &gt; http://msdn.microsoft.com/en-us/library/system.uri.aspx