我用url打开Firefox
的 http://a.com/c/d 即可。
此页面包含<a>
,其中href(相对网址) e / f 。
如果悬停在<a>
上,浏览器会显示http://a.com/e/f。
但下一个代码会生成另一个结果
var uri = new Uri("http://a.com/c/d", "e/f");
return HttpUtility.HtmlDecode(uri.ToString());
输出
http://a.com/c/e/f
如果我没有误解,new Uri
构造函数满意RFC 3986,但浏览器会获得正确的结果。
new Uri()
有什么问题?
修改
真正的基本网址:http://1001parfums.ru/catalog/zhenskij-parfyum
页面上的 href:<a href="products/tualetnaya-voda-escada-moon-sparkle-100m-" data-product="5854"></a>
浏览器获取:http://1001parfums.ru/products/tualetnaya-voda-escada-moon-sparkle-100m-
算法得到:http://1001parfums.ru/catalog/products/tualetnaya-voda-escada-moon-sparkle-100m-
EDIT2: 新例子(previos not working):
基本网址:http://www.kurtki54.ru/catalog/vetrovka.html
页面上的 href:<a href="catalog/vetrovka/ast-1523.html">
浏览器:http://www.kurtki54.ru/catalog/vetrovka/ast-1523.html
新Uri:http://www.kurtki54.ru/catalog/catalog/vetrovka/ast-1523.html