解析的 URI 具有错误的端口号

本文关键字:口号 有错误 URI | 更新日期: 2023-09-27 18:37:04

考虑代码,假设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为空。

我应该如何解析此字符串以获取正确的端口号?

解析的 URI 具有错误的端口号

您需要

http://添加到基本 uri 字符串的开头,以使其成为有效的 URI,例如:

Uri baseUri = new Uri("http://www.contoso.com:8080/", UriKind.RelativeOrAbsolute);

点网小提琴