C# 的 HttpWebRequest 问题

3

可能是重复问题:
HttpWebRequest to URL with dot at the end

我遇到了一个奇怪的问题。当我使用 HttpWebRequest 获取页面时,页面无法正确显示。这个 URL 中有一个点,例如:http://www.xyz.com/abc./do。你可以看到这个 URL 中有一个点。所以当我尝试使用 HttpWebRequest 获取数据时,数据无法正确获取。因此,我使用 Fiddler 进行跟踪,发现这个类省略了这个点,变成了http://www.xyz.com/abc/do。我该如何解决这个问题?

NB. 这不是真实的 URL。但问题是真实存在的。


抱歉,我又打错了一个类型。我已经修改了它。 - Barun
你能发一下你正在使用的代码吗? - Amir
我能够使用IE9、Chrome 12和FF4访问@Barun提供的URL。通常我会认为该URL格式不正确,因此我不会期望HttpWebRequest接受它 - 然而,浏览器似乎并不介意。 - Smudge202
2
有趣 - 我找不到其他类似的问题 - 也找不到方法(到目前为止)来防止地址被解析和“.”被删除。显然你不能转义这个字符,即使你尝试 Uri x = new Uri("http://www.automatica-munich.com/exvi/en/bfa_solutions_ltd./CH/A1/328"); 你会看到相同的行为。我仍然认为提供的URL格式不正确,但不知道如何处理它... - Smudge202
很好,@Jamiec。那应该可以解决问题了,而且这是微软的一个bug。我不会说这是重复的,仅仅因为点的位置不同——一个在末尾,一个在地址中间。有没有人有时间检查一下这种情况是否是一个有效的Url? - Smudge202
显示剩余7条评论
1个回答

1

可能对URL进行编码可以解决问题

HttpUtility.UrlEncodeUnicode(url)

“.”是一个有效的URL字符,因此不会被上述方法调用编码。 - Kyle Trauberman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接