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でエラーが発生します。
ありがとうございました!
電話 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!
}
このエラーの原因となったhttp:// exampleServer/exampleservice.svcのような「http://」の後にスペースがありました。
Nginx fastcgi-mono-server4でも同様のエラーが発生しました。 WebサーバーがSERVER_NAMEの正規表現値を提供したことがわかりました。だから私はfastcgi_param SERVER_NAME $server_name;
をfastcgi_param SERVER_NAME $Host;
に置き換えてサーバーで修正する必要があります