C#解码路径上包含%2F的URL,有没有办法指示API按原样发送URL?

时间:2010-11-17 17:09:24

标签: c# urlencode

我有以下格式的网址 abcd.com/xyz/pqr%2Fss/abc

我希望将其发送到服务器。 当我使用System.Uri构建Uri时,它将其转换为abcd.com/xyz/pqr/ss/abc 它失败了,因为我没有指定路径的URL。

当我尝试使用双重编码时 (abcd.com/xyz/pqr%252Fss/abc)它发送Uri,但它失败了,因为服务器端转换为(abcd.com/xyz/pqr%2Fss/abc)

2 个答案:

答案 0 :(得分:0)

如果你构建你的uri:

Uri u = new Uri("http://abcd.com/xyz/pqr%2Fss/abc")

访问编码的字符串,如下所示:

u.OriginalString

答案 1 :(得分:0)

我也有这个问题,但我找到了解决方案:当你使用HttpUtility.UrlEncode来确保应用程序将正确读取url时,你必须以这种方式构建链接:

http://www.abcd.com/xyz?val=pqr%2Fss

而不喜欢这个

http://www.abcd.com/xyz/pqr%2Fss

其中pqr%2FssHttpUtility.UrlEncode("SOME STRING")

的结果