如何在不使用try catch的情况下检查URL中的文件

时间:2013-12-10 02:46:42

标签: c# asp.net .net visual-studio

我正在编写一个程序来检查网址是否有效。我在网上搜索,几乎所有检查URL存在的方法都是使用try catch。但我不想使用try catch来检查网址,我只是想使用属性或方法或任何其他方式来检查网址的存在。 我该怎么做? 我正在使用Visual Studio 2008

2 个答案:

答案 0 :(得分:7)

伴侣,

您的问题有点令人困惑......您是否正在尝试检查文件系统中是否存在文件?或者您正在尝试检查网站/网页是否存在于互联网的某个位置?

如果您尝试检查文件系统中的文件,请使用....

System.IO.File.Exists

如果您要检查互联网中是否存在网页。好吧,你无法安全地做到这一点,因为你被迫发出一个http请求,然后检查服务器的响应,响应将是一个HTTP代码,不幸的是,HttpRequest / HttpResponse的.NET Framework包装器将抛出http错误代码的例外,例如500,404,403,401等

希望它有意义

答案 1 :(得分:0)

对此的答案还取决于您是否尝试验证仅存在于GET的URL,或者您是否也支持GET和POST,或HTTP方法的任何组合。我假设你刚刚使用GET。

您是否可以使用开源代码?快速搜索发现这个库http://www.codescales.com/看起来不会抛出异常。

为了完整起见,如果您能够使用.NET 4.5,则新的System.Net.Http.HttpClient不会对非2xx响应抛出异常。

虽然异常是一项代价高昂的行动,但除非您每秒执行数百或数千次请求,否则我不会担心。每秒数十次这样做的成本应该是一个微不足道的性能影响。