获取没有端口.net的地址,并将地址+端口构造到端点

时间:2013-04-09 07:52:01

标签: c# .net url port

来自“http://localhost:2111/”之类的网址如何将地址部分http://localhost/与端口部分分开:2111?是否有一个数据结构允许我将http://localhost:2111/与其地址和端口分开或构造?

2 个答案:

答案 0 :(得分:2)

使用此:

Uri uri = new Uri("http://localhost:2111/");
string newUri = uri.Scheme + "://" + uri.Host + "/";
Console.WriteLine(newUri);

// Output:
// http://localhost/

反过来说:

Uri uri = new Uri("http://localhost/");
string newURI = uri.AbsoluteUri + uri.Port;

对于我uri.Ports返回80,我不知道它是否适合您,但请尝试一下。

答案 1 :(得分:1)

UriBuilder可用于通过将端口值设置为-1或80来从URL中删除端口:

var uriBuilder = new UriBuilder("http://localhost:2111/");
uriBuilder.Port = -1;  // or 80
string newUrl = uriBuilder.Uri.AbsoluteUri;
Console.WriteLine(newUrl);

以上将输出http://localhost/

如果要将它们重新组合在一起,请再次使用UriBuilder并将端口设置为2111:

var uriBuilder = new UriBuilder("http://localhost/");
uriBuilder.Port = 2111;
string newUrl = uriBuilder.Uri.AbsoluteUri;
Console.WriteLine(newUrl);

以上将输出http://localhost/2111