我如何保持Uri解码的路径?



我正在尝试创建一个uri,但由于某种原因,每次都在解码路径,导致我的浏览器试图访问uri构建的页面出现问题?

POC:

using System;

public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var newLocation = new UriBuilder()
{
Scheme = Uri.UriSchemeHttps,
Host = "localhost",
Path = "/WebResource.axd?d=0"
}.Uri;

Console.WriteLine($"Hello World {newLocation}");
}
}

这个输出:

Hello World
Hello World https://localhost/WebResource.axd%3Fd=0

我希望:

Hello World
Hello World https://localhost/WebResource.axd?d=0

可能它正在转换问号,因为您在.path而不是.query中指定了问号。尝试将?d=0移动到.query中,看看是否得到相同的结果。

或者,尝试使用MS文档中的重载将完整的URL加载到UriBuilder中:UriBuilder baseUri = new UriBuilder("http://www.contoso.com/default.aspx?Param1=7890");

我不是专家,但它看起来像是试图用ASCII码或3F(%3F)替换问号。这可能是因为问号在浏览器中表示查询,而不被认为是URI的一部分。我只是猜一下,我不知道该怎么修。

希望我能帮上忙!

相关内容

  • 没有找到相关文章

最新更新