Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#屏幕刮板-长柄uri';s_C#_Screen Scraping - Fatal编程技术网

C#屏幕刮板-长柄uri';s

C#屏幕刮板-长柄uri';s,c#,screen-scraping,C#,Screen Scraping,我正在构建一个html屏幕刮板,它解析URL,然后将它们与一组其他URL进行比较 使用Uri.AbsoluteUri或Uri.Host进行比较 我的问题是,当我创建一个新Uri(新Uri(url))时,当url太长或包含太多斜杠时,会引发UriFormatException 因为我的预定义url集包含几个(到)长url,所以我不能只使用子字符串来获取url的一部分 处理这个问题的最佳方法是什么 谢谢您可以使用来检查URI是否有效,然后再新建它 你不应该得到一个例外的网址这是如此短。以下程序在VS

我正在构建一个html屏幕刮板,它解析URL,然后将它们与一组其他URL进行比较

使用Uri.AbsoluteUri或Uri.Host进行比较

我的问题是,当我创建一个新Uri(新Uri(url))时,当url太长或包含太多斜杠时,会引发UriFormatException

因为我的预定义url集包含几个(到)长url,所以我不能只使用子字符串来获取url的一部分

处理这个问题的最佳方法是什么

谢谢

您可以使用来检查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();
}

是的,我知道,但如果失败了,我无法将该uri与我的列表进行比较。我想要的是在创建新Uri时“禁用”这些检查。您的“过长”Uri有多长?你确定它们确实有效吗?我正在测试的uri是完全有效的,只允许使用字符。长度是277个字符。请看我的样品。它有315个字符长,不会抛出异常。你的url有多少斜杠抛出异常?我想我发现了问题。主机名包含大约200个字符。