我使用这个简单的代码从我从网页解析的链接中检索绝对路径。CurrentAddress
是网页地址,testingAddress
是我找到的链接
String uri = new Uri(new Uri(currentAddress), new Uri(testingAddress)).AbsoluteUri;
这几乎总是有效的,并且它可以辨别testingAddress
是否相对于页面。
我遇到了一个不指定文件名的相对链接的问题,例如"/portal/combo/?v=1"
在这种情况下,异常
"无法确定URI的格式";
被提升。
如果我指定testingAddress
是相对的,它是有效的,但在这一点上,我失去了代码的功能,该代码本应能够理解如何单独组合路径,并且在连接路径之前,我必须手动检查路径。
有没有办法让它发挥作用,或者我必须接受它并添加控件来准备testingAddress
字符串?
使用将string?
作为第二个参数的重载(来自文档(:
Uri(Uri,String(
基于指定的基Uri和相对Uri字符串初始化Uri类的新实例。
public Uri (Uri baseUri, string? relativeUri);
示例
var currentAddress = "https://stackoverflow.com";
var testingAddress = "/questions/67382787/determining-path-of-a-relative-url-without-filename";
String uri = new Uri(
baseUri: new Uri(currentAddress),
relativeUri: testingAddress).AbsoluteUri;
// uri is "https://stackoverflow.com/questions/67382787/determining-path-of-a-relative-url-without-filename"