gpt4 book ai didi

.net - 使用相对 URI

转载 作者:行者123 更新时间:2023-12-04 06:50:15 24 4
gpt4 key购买 nike

我在使用相对 URI 时遇到了一些麻烦

我有一个简单的 HttpListener 应用程序,它正在监听给定的前缀(当前是 http://+:80/Temporary_Listen_Addresses/ ,但它可以是任何其他有效前缀)。

对于任何给定的请求,我试图找出请求的 URI 相对于该前缀的内容,例如,如果有人请求 http://localhost/Temporary_Listen_Addresses/test.html ,我要得到test.html .

做到这一点的最佳方法是什么?

更新: MakeRelativeUri 方法对我不起作用,因为它不知道等效地址。例如,以下在使用“localhost”时工作正常:

Uri baseUri = new Uri("http://localhost/Temporary_Listen_Addresses/");
Uri relative = baseUri.MakeRelativeUri(uri);

但是,如果您浏览到 http://127.0.0.1/,它将不起作用。 , 或 http://machinename/等等...

最佳答案

您可以使用 MakeRelative URI 类上的方法。

编辑:如果 URL 的机器名称或权限部分有问题,您可以做的是每次创建一个具有相同权限的新 URL,并且只使用现有 URI 中的路径。例如,您可以通过执行以下操作来创建输入 URI:

UriBuilder b = new UriBuilder();
b.Path = input.Path; //this is just the path portion of the input URL.
b.scheme = "http";
b.host = "localhost"; // fix the host so machine name isn't an issue

input = b.Uri;
URI relative = baseUri.MakeRelative(input);

关于.net - 使用相对 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3228934/

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