我正在构建一个html屏幕抓取工具,它解析网址,然后将其与一组其他网址进行比较。
与Uri.AbsoluteUri或Uri.Host进行比较。
我的问题是,当我创建一个新的Uri(新的Uri(url))时,当url为long或包含多个斜杠时会抛出UriFormatException。
由于我的预定义网址集包含多个(到)长网址,因此我不能仅使用子字符串来获取网址的一部分。
处理此问题的最佳方法是什么?
由于
答案 0 :(得分:1)
您可以使用Uri.TryCreate在new
之前检查URI是否有效。
你不应该在网址上得到例外这么短。以下程序在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();
}