2009-08-19 49 views
0

我正在構建一個html屏幕刮板,它解析URL,然後將它們與一組其他URL相比較。C#屏幕刮板 - 處理長uri的

與Uri.AbsoluteUri或Uri.Host進行比較。

我的問題是,當我創建一個新的Uri(新的Uri(url))時,當URL長或包含許多斜槓時會引發UriFormatException。

由於我的預定義的一組網址包含幾個(到)長的網址,我不能只使用子串來只抓取一部分網址。

什麼是處理的最佳方式?

感謝

回答

1

您可以使用Uri.TryCreate來檢查URI是有效的,你new它之前。

你不應該在這麼短的網址上發生異常。如下因素程序運行良好的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比較我的名單。我想要的是在創建新的Uri時只是「禁用」這些檢查。 – alexn 2009-08-19 10:40:01

+0

你的「太長」uris有多久了?你確定他們真的有效嗎? – Espo 2009-08-19 10:47:07

+0

我測試的uri完全有效,只允許使用字符。長度是277個字符。 – alexn 2009-08-19 10:53:56