gpt4 book ai didi

c# - 在 .NET 中创建 Uri 会自动对传递的字符串中的所有参数进行 urldecode

转载 作者:太空狗 更新时间:2023-10-29 18:20:45 27 4
gpt4 key购买 nike

假设我想从以下字符串创建一个 Uri 对象:

string url = @"http://someserver.com?param1=1&url=http%3a%2f%2fwww.otherserver.com";
Uri uri = new Uri(url, UriKind.Absolute);

预期结果为:

http://someserver.com?param1=1&url=http%3a%2f%2fwww.otherserver.com 

获得:

http://someserver.com/?param1=1&url=http://www.otherserver.com

在许多允许创建 Uri 的相关方法中注意到相同的行为:Uri.TryCreate、UriBuilder.Uri 等。

我如何获得保留初始编码参数的 Uri?

最佳答案

在 .NET4 中,您可以为某些方案禁用 Uri 压缩 via a configuration :

<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>

请注意,禁用默认行为会带来安全隐患。

关于c# - 在 .NET 中创建 Uri 会自动对传递的字符串中的所有参数进行 urldecode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307833/

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