询问者
Uri的大bug,当访问的URL以“点”结尾的时候出错

问题
-
Uri的大bug,当访问的URL以“点”结尾的时候出错
例如 使用 WebClient 访问网址 http://www.xxx.com/target.
Uri 会自动去掉结尾的 点儿,变成 http://www.xxx.com/target 少了结尾的 点儿 导致访问出错!!
遇到这样的问题怎么办? 如何修复这个bug?
全部回复
-
你好,
能提供相应的代码吗?
正确的网站链接可否一并提供以便大家测试分析原因?
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
立刻免费下载 MSDN 论坛好帮手
我用 firefox4 测试过了 不会去掉 URL末位的"."
不信你试试
http://www.google.com.hk/13.
"404. That’s an error.
The requested URL /13. was not found on this server. That’s all we know. "
说明 这个"." 已经提交到 google那里了, google收到了!同时您可以测试用 WebClient 试试
WebClient wc = new WebClient();
string htmlbody = wc.DownloadString(http://www.google.com.hk/13.);
看看 是不是 "." 给过滤掉了
-
你好,
我也测试了下,浏览器使用的是IE9.
在浏览器中,我测试的网址是“http://www.google.com.hk/#hl=zh-CN&source=hp&q=google&oq=google&aq=f&aqi=&aql=undefined&gs_sm=e&gs_upl=5244l6572l0l6l6l0l0l0l0l528l528l5-1l1&fp=8c698bdd3e6b9ed9&biw=1280&bih=855”,在浏览器中,这个link后面加点或者不加点都是同样的网址(google搜索关键字“google”)。
在程序中,访问网址加或者不加点也是返回的同一个网址。
我想,首先网址以“。”结尾的应该是没有的,或者是很少的。其次, 当你输入”http://www.google.com.hk/13.“网址时,主站google已经是找到了,再向下,“/13.”的Url是无效的,所以会报错,显示出错误的url。
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
立刻免费下载 MSDN 论坛好帮手
-
你好,
我也测试了下,浏览器使用的是IE9.
在浏览器中,我测试的网址是“http://www.google.com.hk/#hl=zh-CN&source=hp&q=google&oq=google&aq=f&aqi=&aql=undefined&gs_sm=e&gs_upl=5244l6572l0l6l6l0l0l0l0l528l528l5-1l1&fp=8c698bdd3e6b9ed9&biw=1280&bih=855”,在浏览器中,这个link后面加点或者不加点都是同样的网址(google搜索关键字“google”)。
在程序中,访问网址加或者不加点也是返回的同一个网址。
我想,首先网址以“。”结尾的应该是没有的,或者是很少的。其次, 当你输入”http://www.google.com.hk/13.“网址时,主站google已经是找到了,再向下,“/13.”的Url是无效的,所以会报错,显示出错误的url。
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
立刻免费下载 MSDN 论坛好帮手
无论URL是否正确, 最重要的是 末位的"." 一般浏览器是不会去掉的,
但是 我们.NET 中的 WebClient 类, 在初始化 url 的时候, 末位有"." 的话 会自动抹除, 这是一个很大的BUG, 不应该多此一举!
以上是我通过网络数据包监视HTTP GET消息中的 URL得到的结论。
如果你问 为什么URL末位要 ".", 我只能说这是需求,就是存在这样的URL等待我去处理。