我想以编程方式检查URL是否确实存在。我检查的URL是对WebAPI服务器的调用,因此它们具有不同的HTTP方法。我要做的实际上是检查Uri是否格式正确,然后将其称为我创建的此方法。让我先告诉你,我完全不喜欢这种方法,但它似乎确实起作用。我是否在这里错过了重要的东西,应该检查一下?还是有更好的更干净的方法来代替此异常逻辑。我只想知道URL是否存在,仅此而已。因此,在大多数情况下,我会收到405 Method Not Allowed,这很好。
public static bool UriExists(string url)
{
try
{
var request = WebRequest.Create(url);
request.Timeout = 5000;
request.Method = "HEAD";
using (var response = request.GetResponse())
{
return true;
}
}
catch (WebException ex)
{
return ((HttpWebResponse)ex.Response).StatusCode != HttpStatusCode.NotFound &&
((HttpWebResponse)ex.Response).StatusCode != HttpStatusCode.RequestTimeout &&
((HttpWebResponse)ex.Response).StatusCode != HttpStatusCode.GatewayTimeout;
}
}