Parsed Uri的端口号错误

时间:2016-03-02 10:32:29

标签: c# uri

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

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

1 个答案:

答案 0 :(得分:0)

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

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

DotNetFiddle