【发布时间】:2016-11-03 06:34:36
【问题描述】:
*编辑:这不会在 Windows 上发生,而是在 Mono 4.2.2 Linux (C# Online Compiler) 上发生。
我想解析协议相对 URL 并获取主机名等。现在我在处理它之前将“http:”插入头部,因为 C# Uri 类无法处理协议相对 URL。你能告诉我是否有更好的方法或任何好的图书馆?
// Protocol-relative URL
var uriString = "//www.example.com/bluh/bluh.css";
var uri = new Uri(uriString);
Console.WriteLine(uriString); // "//www.example.com/bluh/bluh.css"
Console.WriteLine(uri.Host); // "Empty" string
// Absolute URL
var fixUriString = uriString.StartsWith("//") ? "http:" + uriString : uriString;
var fixUri = new Uri(fixUriString);
Console.WriteLine(fixUriString); // "http://www.example.com/bluh/bluh.css"
Console.WriteLine(fixUri.Host); // "www.example.com"
【问题讨论】:
-
也许你可以自己写
UriParser- msdn.microsoft.com/en-us/library/system.uriparser.aspx