2010-11-16 112 views
14

我试图建立开放的,但我无法处理错误的URI的无效的URI:主机名无法解析

有什么办法,我们可以处理错误的URI的

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()); 
} 

else部分被错误从坏的URI 谢谢

+1

如果您使用代码示例标签,将会更容易阅读这个 – 2010-11-16 18:38:38

+0

您的问题是什么? – SLaks 2010-11-16 18:43:04

+0

@Femaref:你编辑不正确。 “我正在尝试构建......”是正确的。 – gligoran 2010-11-16 18:43:17

回答

18

呼叫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! 
} 
+0

很酷,我不知道它存在。我删除了我的帖子,因为您的帖子似乎是最好的答案。 – 2010-11-16 18:40:43

+0

诀窍非常感谢你.. – kumar 2010-11-16 18:52:24

0

我得到了与nginx fastcgi-mono-server4类似的错误。事实证明,webserver为SERVER_NAME提供了正则表达式值。所以我必须用fastcgi_param SERVER_NAME $host;

0

更换fastcgi_param SERVER_NAME $server_name;修复它在服务器上我有一个空格后的“http://”,如http://才导致这个错误exampleServer/exampleservice.svc。