-1
考虑代码,假设baseUri
来自一个方法参数解析的乌里有错误的端口号
Uri baseUri = new Uri("www.contoso.com:8080/", UriKind.RelativeOrAbsolute);
baseUri = baseUri.IsAbsoluteUri
? baseUri
: new Uri("http://" + baseUri.OriginalString);//make URI http by default
Uri myUri = new Uri(baseUri, "catalog/shownew.htm?date=today");
对于给定的字符串IsAbsoluteUri返回true。但是,尽管端口在URI myUri.Port
中指定为-1,myUri.Host为空。
我该如何解析这个字符串才能得到正确的端口号?
正要写这篇文章,你打我吧 – BugFinder
作为我提到baseUri来自用户输入。它可以是http://,https://,ftp://等。 我不能只是添加协议。这就是为什么我试图检测是否需要通过阅读IsAbsoluteUri属性 –
来添加它,如果它出现错误,您会得到模糊的数据 - 毕竟它应该猜测ftp http https? – BugFinder