来自“http://localhost:2111/
”之类的网址如何将地址部分http://localhost/
与端口部分分开:2111?是否有一个数据结构允许我将http://localhost:2111/
与其地址和端口分开或构造?
答案 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
。