如何使用非 ascii 字符处理 HttpWebRequest 重定向
Posted
技术标签:
【中文标题】如何使用非 ascii 字符处理 HttpWebRequest 重定向【英文标题】:How to handle HttpWebRequest redirect with non-ascii characters 【发布时间】:2011-10-05 00:38:21 【问题描述】:我正在编写一个应用程序,它使用 HttpWebRequest 类获取一组 URL 的服务器响应代码。我今天遇到了一个给我带来问题的 URL。
有问题的网址是http://blip.tv/file/5312019
当我在 Internet Explorer 中加载此 URL 时,它会正确地将我重定向到 http://blip.tv/sorawut/money-talk-เม่า-นักเขียนการ์ตูนหุ้น-5329374。但是在使用 HttpWebRequest 类时,它会出现重定向问题。
如果我将 AllowAutoRedirect 设置为 false 并检查 response.Headers 集合中的 Location 元标记,它会显示时髦的 URL http://blip。电视/sorawut/money-talk-à¹à¸¡à¹à¸²-à¸à¸±à¸à¹à¸à¸µà¸¢à¸à¸à¸²à¸£à¹à¸à¸¹à¸à¸«à¸¸ à¹à¸-5329374。当请求尝试重定向到此 URL 时,它会导致无限重定向循环并最终抛出 WebException 说“尝试了太多自动重定向”。
我尝试将这个时髦的 URL 粘贴到 Internet Explorer 中,它会自动将其更改为正确的重定向 URL 并成功加载页面。
那么,我需要做什么才能让我的 HttpWebRequest 为这个特定的 URL 返回状态码 200? (因为它是成功重定向后有效且有效的 URL)
【问题讨论】:
【参考方案1】:在你的配置文件中试试这个
<configuration>
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
</configuration>
在此处查看国际资源标识符支持部分 -> http://msdn.microsoft.com/en-us/library/system.uri.aspx
【讨论】:
以上是关于如何使用非 ascii 字符处理 HttpWebRequest 重定向的主要内容,如果未能解决你的问题,请参考以下文章