gpt4 book ai didi

c# - 如何阻止 System.Uri 取消对 URL 的编码?

转载 作者:太空狗 更新时间:2023-10-29 21:46:17 25 4
gpt4 key购买 nike

如何阻止 System.Uri 类对传递给其构造函数的已编码 URL 取消编码?考虑以下代码:-

Uri uri = new Uri("http://foo.bar/foo%2FBar");
Console.WriteLine(uri.AbsoluteUri);
uri = new Uri("http://foo.bar/foo%2FBar", false);
Console.WriteLine(uri.AbsoluteUri);
uri = new Uri("http://foo.bar/foo%2FBar", true);
Console.WriteLine(uri.AbsoluteUri);

在每种情况下,输出都是“http://foo.bar/foo/bar”。如何确保在实例化 Uri 实例后,Uri.AbsoluteUri 将返回“http://foo.bar/foo%2FBar”?

最佳答案

Uri 类不用于生成转义 URI,但您可以使用 uri.OriginalString 检索用于初始化的字符串。如果您需要安全地重新编码 URI,您可能应该使用 UrlEncode。

此外,根据 http://msdn.microsoft.com/en-us/library/9zh9wcb3.aspx Uri 初始值设定项中的 dontEscape 参数已被弃用,并且始终为 false。

更新:

似乎有人找到了一种方法(hack)来做到这一点 - GETting a URL with an url-encoded slash

关于c# - 如何阻止 System.Uri 取消对 URL 的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9987366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com