我需要从URL获取端口协议详细信息。有人可以帮帮我吗?我试过一些代码 -
Uri uri = new Uri("http://stackoverflow.com/questions/ask");
string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;
问题1 - 此代码不告诉我这是TCP还是UDP还是ISMP
问题2 - 此代码不检查URL的实际端口/协议详细信息。
问题3 - 如果我有这样的网址 - “stackoverflow.com”,我无法构建网址。
请有人帮助我。
由于 Gulrej
答案 0 :(得分:2)
这可能有所帮助,它对我有用
string url = "http://www.contoso.com:8080/letters/readme.html";
Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
RegexOptions.None, TimeSpan.FromMilliseconds(150));
Match m = r.Match(url);
if (m.Success)
Console.WriteLine(r.Match(url).Result("${proto}${port}"));
答案 1 :(得分:0)
使用url = stackoverflow.com/questions/ask
您很容易知道:
协议= http或https。
并且
端口=默认端口= 80(http)或443(https)
如果有特定端口,它将被放置在主机名之后 [stackoverflow.com:8180]