2010-11-16 539 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。