-1
Рассмотрим код, предполагая baseUri
происходит от параметра методаParsed Uri имеет неправильный номер порта
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 возвращает верно. Но, несмотря на то, что порт указан прямо в URI, myUri.Port
равен -1, а myUri.Host пуст.
Как следует проанализировать эту строку, чтобы получить правильный номер порта?
как раз собирался написать это, и вы избили меня к нему – BugFinder
Как Я упомянул, что baseUri происходит от пользовательского ввода. Это может быть http: //, https: //, ftp: // и т. Д. Я не могу просто добавить протокол. Вот почему я попытался определить, нужно ли мне добавить его, прочитав свойство IsAbsoluteUri –
, если оно окажется неправильным, вы получите неопределенные данные - ведь все-таки предполагается, что он догадается ftp http https? – BugFinder