如果我有 URI "http://www.test.com/something" 并且我想要 "www.test.com" 部分。我应该使用什么?(什么是最好的)
我在CHAT中问过这个问题,但没有那么幸运。
如果我有 URI "http://www.test.com/something" 并且我想要 "www.test.com" 部分。我应该使用什么?(什么是最好的)
我在CHAT中问过这个问题,但没有那么幸运。
坚持使用Request.Url.Authority
,因此如果您的主机有另一个端口而不是80
,它将显示(如果这对您很重要)。
例子:
Uri baseUri = new Uri("http://www.test.com:8888/something");
Console.WriteLine(myUri.Authority);
Console.WriteLine(myUri.Host);
输出:
www.test.com:8888
www.test.com
如果您只想向用户显示主机部分,则无需费心DnsSafeHost
。如果您需要将 IPv6 地址转换为名称解析,则可以使用http://[fe80::200:39ff:fe36:1a2d%4]/temp/example.htm
它fe80::200:39ff:fe36:1a2d%4
。
正如评论所述,您打算使用主机名的目的可能很重要。
一般来说,我会使用 Uri.Authority,或者组合我需要的组件。
权限提供了两个关键组件来定位服务:1)主机名 2)端口。其他两个属性只给你主机名。
例如,如果我访问的网站不是托管在默认端口上,而是例如 81 (http://example.com:81),我也想知道端口号。