好的,在消化了URL和URI之间的this one差异这样的优秀答案之后,我想我现在理解了两者之间的区别。
我现在不明白为什么.NET框架有一个UriBuilder类,据我所知,它只在URI上工作,URI是资源定位器,因此应该正确地称为UrlBuilder。
有人能给我一个例子,说明UriBuilder被用来构建不是资源定位器的URI吗?还是在设计.NET框架时做出这个决定的一些理由?
发布于 2012-07-12 01:24:57
考虑一下,UriBuilder比URL更强大和更广泛。因为每个URL都是一个URI,所以UriBuilder本身就是一个UriBuilder。
因此,基本上问题是什么时候可以对非URI使用UriBuilder。嗯,我想最好的例子是URN (因为URL和URN基本上是定位符和名称--这是URI的两个分类)。例如,可以使用URN来构建uuid (即urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66)或ISBN (即ISBN 0-486-27557-4)。这些URN不包含像URL那样指向资源的位置信息,它们只包含名称或ids。UriBuilder不仅能够构建URL(指向资源),而且还能够构建URN。如果您查看Uri.Scheme property,您将在Uri的可能方案列表中看到uuid。
而且,.NET在技术上确实有一个UrlBuilder class。
发布于 2012-07-18 14:25:41
Uri _uri = new Uri(URL);
string tURL = _uri.Scheme + "://" + _uri.Host + _uri.LocalPath;
Console.WriteLine("Before: " + tURL);
uri = new UriBuilder(tURL);
Console.WriteLine("After: " + uri.Uri.ToString());https://stackoverflow.com/questions/11392924
复制相似问题