我应该如何获得URI的特定部分

时间:2012-07-25 14:11:25

标签: c# request uri

如果我有URI“http://www.test.com/something”,我想要“www.test.com”部分。 我该怎么用? (这是最好的)

我在CHAT中问了这个问题,但没有那么多运气。

2 个答案:

答案 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.htmfe80::200:39ff:fe36:1a2d%4进行名称解析。

答案 1 :(得分:4)

如评论所述,您打算使用主机名的目的可能很重要。

一般来说,我会用 Uri.Authority,或组合我需要的组件。

Authority提供了两个关键组件来定位服务:1)主机名2)端口。 其他两个属性只为您提供主机名。

例如,如果我访问的网站没有托管在默认端口上,但是例如81(http://example.com:81),我也希望了解端口号。