web-dev-qa-db-ja.com

無効なURI:ホスト名を解析できませんでした

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でエラーが発生します。

ありがとうございました!

17
kumar

電話 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!
}
20
SLaks

このエラーの原因となったhttp:// exampleServer/exampleservice.svcのような「http://」の後にスペースがありました。

1
Dev

Nginx fastcgi-mono-server4でも同様のエラーが発生しました。 WebサーバーがSERVER_NAMEの正規表現値を提供したことがわかりました。だから私はfastcgi_param SERVER_NAME $server_name;fastcgi_param SERVER_NAME $Host;に置き換えてサーバーで修正する必要があります

0
l0pan