无效的URI:无法解析主机名

时间:2010-11-16 18:36:12

标签: c# uri

我正在尝试构建Uri但是我无法处理坏的uri的

我们有什么方法可以处理坏的uri's

if (reviews[e.Item.ItemIndex].URL.ToString().Contains("http:"))
{
      oURI = new Uri(reviews[e.Item.ItemIndex].URL.ToString());
}
else 
{
   oURI = new Uri("http://"+ reviews[e.Item.ItemIndex].URL.ToString());
}

其他部分因错误的uri而出错 谢谢

5 个答案:

答案 0 :(得分:20)

致电Uri.TryCreate

string original = reviews[e.Item.ItemIndex].URL.ToString();
if (!original.StartsWith("http:"))
    original = "http://" + original;
Uri uri;
if (!Uri.TryCreate(original, UriKind.Absolute, out uri)) {
    //Bad bad bad!
}

答案 1 :(得分:1)

" http://"像http:// exampleServer / exampleservice.svc这导致了这个错误。

答案 2 :(得分:0)

我和nginx fastcgi-mono-server4有类似的错误。事实证明,网络服务器为SERVER_NAME提供了正则表达式值。因此,我必须将fastcgi_param SERVER_NAME $server_name;替换为fastcgi_param SERVER_NAME $host;

,以便在服务器上进行修复

答案 3 :(得分:0)

尝试在C#中构造URI对象时遇到了类似的错误。 对我来说,问题是长度。

答案 4 :(得分:0)

对于任何人来说,这可能是个问题, 在我的某些网址上有Invalid URI: The hostname could not be parsed,而在某些网址上却没有。

我调查了网址制作问题they had '\' instead of '/' in urls

因此在URI解析中会引发错误。