*编辑:这不是在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"发布于 2016-07-01 10:08:53
这是可行的:
Uri uri = null;
if(Uri.TryCreate("//forum.xda-developers.com/pixel-c", UriKind.Absolute, out uri))
{
Console.WriteLine(uri.Authority);
Console.WriteLine(uri.Host);
}返回
forum.xda-developers.com
forum.xda-developers.com它也适用于我使用Uri(string)构造函数的情况。
https://stackoverflow.com/questions/38135386
复制相似问题