从包含方案的uri中获取主机

本文关键字:获取 主机 uri 包含 方案 | 更新日期: 2023-09-27 18:23:47

我目前的问题是,如果我有一个类似"onenote:https://somerandomhost.com/foo1/foo2"我的Uri对象的主机和权限始终是"

我目前的解决方案是:

var uri = new Uri(hyperlinkURL);
if(uri.Scheme != "https" && uri.Scheme != "http")
{
    uri = new Uri(uri.LocalPath);
}

有更好的方法吗?

从包含方案的uri中获取主机

您的解决方案应该可以工作:

    var link = "onenote:https://somerandomhost.com/foo1/foo2"; 
    var uri = new Uri(link);
    if(uri.Scheme != "https" && uri.Scheme != "http")
    {
        uri = new Uri(uri.LocalPath);
    }
    Console.WriteLine(uri.Host);
    Console.WriteLine(uri.Authority);

https://dotnetfiddle.net/nLqXE4