如果我有URI“http://www.test.com/something”,我想要“www.test.com”部分。 我该怎么用? (这是最好的)
我在CHAT中问了这个问题,但没有那么多运气。
答案 0 :(得分:5)
坚持使用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
进行名称解析。
答案 1 :(得分:4)
如评论所述,您打算使用主机名的目的可能很重要。
一般来说,我会用 Uri.Authority,或组合我需要的组件。
Authority提供了两个关键组件来定位服务:1)主机名2)端口。 其他两个属性只为您提供主机名。
例如,如果我访问的网站没有托管在默认端口上,但是例如81(http://example.com:81),我也希望了解端口号。