1

从像“ http://localhost:2111/”这样的 URL 如何将地址部分:http://localhost/与端口部分:2111 分开?是否有一种数据结构可以让我 http://localhost:2111/从其地址和端口中分离或构造?

4

2 回答 2

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.Ports80我不知道它是否适合你,但请尝试一下。

于 2013-04-09T07:58:52.827 回答
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.

于 2013-11-01T22:39:53.193 回答