2009-08-19 4 views
0

私はhtmlスクリーンスクレーパーを構築しています。これはurlsを解析し、それらを他のURLのセットと比較します。C#Screen Scraper - 長いuriを扱います

比較は、Uri.AbsoluteUriまたはUri.Hostを使用して行います。

私の問題は、新しいUri(新しいUri(url))を作成しているときに、urlが長いかスラッシュが多い場合にUriFormatExceptionがスローされるということです。

私の定義済みのURLセットには長いURLがいくつか含まれているので、部分文字列を使用してURLの一部だけを取得することはできません。

これを処理するにはどうすればよいでしょうか?

おかげ

答えて

1

あなたはそれをnew前に、URIが有効であるかどうかを確認するためにUri.TryCreateを使用することができます。

URLには例外がありません。これは非常に短いです。フォロープログラムはVS2008でも正常に動作します。

static void Main(string[] args) 
{ 
    Uri uri = new Uri("http://stackoverflow.com/questions/1298985/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/c-screen-scraper-handle-long-uris/"); 
    Uri uri2 = new Uri("http://stackoverflow.com/questions/1298985/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/1/"); 
    Console.ReadLine(); 
} 
+0

はい、私が知っているが、それが失敗した場合、私はそのリストを私のリストと比較することはできません。私が望むのは、新しいUriを作成するときにこれらのチェックを「無効にする」ことだけです。 – alexn

+0

あなたの「長すぎる」尿はどのくらいですか?彼らが実際に有効であると確信していますか? – Espo

+0

私はテストしていますが、完全に有効です。許可されている文字のみです。長さは277文字です。 – alexn

関連する問題