首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Uri类不处理与协议相关的URL

Uri类不处理与协议相关的URL
EN

Stack Overflow用户
提问于 2016-07-01 08:44:54
回答 1查看 783关注 0票数 0

*编辑:这不是在Windows上发生的,而是在Mono 4.2.2 Linux (C# Online Compiler)上发生的。

我想要解析协议相关的URL并获得主机名等。现在,我在处理它之前将"http:“插入到头部,因为C# Uri类不能处理协议相关的URL。你能告诉我有没有更好的方法或者更好的库?

代码语言:javascript
复制
    // 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"
EN

回答 1

Stack Overflow用户

发布于 2016-07-01 10:08:53

这是可行的:

代码语言:javascript
复制
    Uri uri = null;
    if(Uri.TryCreate("//forum.xda-developers.com/pixel-c", UriKind.Absolute, out uri))
    {
        Console.WriteLine(uri.Authority);
        Console.WriteLine(uri.Host);
    }

返回

代码语言:javascript
复制
forum.xda-developers.com
forum.xda-developers.com

它也适用于我使用Uri(string)构造函数的情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38135386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档