下面这行代码给出了一个例外。这是框架中的错误吗?如果不是我能采取什么方法呢?为什么Uri中的冒号“:”传递给Uri.MakeRelativeUri会导致异常?
这似乎是“:”(冒号)引起的问题,然而,我看到这样的URI的工作就ok生产网站(即似乎是一个有效的URI在现实世界中)
Uri relativeUri = new Uri("http://test.com/asdf").MakeRelativeUri(new Uri("http://test.com/xx:yy"));
// gives => System.UriFormatException: A relative URI cannot be created because the
// 'uriString' parameter represents an absolute URI
Uri relativeUri = new Uri("http://test.com/asdf").MakeRelativeUri(new Uri("http://test.com/xxyy"));
// this works - removed the colon between the xx and yy
PS。具体来说,我可以问,鉴于上述情况,我可以使用哪些.NET类/方法(注意我正在解析网页中的HTML页面)以获取(a)页面URI和(b)HTML中的相对字符串HREF参数[例如在这种情况下会是“/ xx:yy”)并返回可用于解决该资源的有效URI?
换句话说,我该如何模仿浏览器的行为,以便翻译HREF和页面URI,以生成单击它时用于转到该资源的URI。
乔恩波斯特尔:“你接受自由,保守你发送的东西。请引用RFC及其段落号,证明这是一个有效的URI。 – 2010-01-27 01:13:35