检查URI是否确实存在.NET

时间:2019-01-25 09:02:26

标签: .net uri webrequest httpwebresponse

我想以编程方式检查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;
        }
    }

0 个答案:

没有答案