像浏览器一样组合完整的 URL 和虚拟 URL

本文关键字:URL 组合 虚拟 一样 浏览器 | 更新日期: 2023-09-27 17:55:34

我有一个完整的网址,比如:A: http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext

我有一个相对网址,例如:B: ../../fff.ext

我正在寻找 .NET C# 中最简单的方法来组合这两个 URL 并获得: C: http://www.domain.com/aaa/bbb/fff.ext

这就像浏览器所做的:您正在浏览URL A,然后,页面的HTML有一个超链接为B,生成的URL为C。

像浏览器一样组合完整的 URL 和虚拟 URL

你可能会有更好的运气去查找"PathCanonicalize"。

此外,根据我的发现,其中一个重载的 Uri 构造函数可以处理这个问题:

Uri combined = new Uri(
  new Uri("http://www.domain.com/aaa/bbb/ccc/ddd/eee.ext", UriKind.Absolute),
  "../../fff.ext"
);

证据就在布丁里