检查是否可以访问URL – 帮助优化类

net 4和c#。

如果Uri(字符串)返回HTTP状态代码200,我需要一个能够返回Bool值的Class。

目前我有这个代码(它使用try来查看是否可以连接到Uri),但我希望用“HttpStatusCode.OK”实现。

  • 你知道更好的方法吗?

谢谢。

public static bool IsReachableUri(string uriInput) { // Variable to Return bool testStatus; // Create a request for the URL. WebRequest request = WebRequest.Create(uriInput); request.Timeout = 15000; // 15 Sec WebResponse response; try { response = request.GetResponse(); testStatus = true; // Uri does exist response.Close(); } catch (Exception) { testStatus = false; // Uri does not exist } // Result return testStatus; } 

好吧,首先最好为你的响应设置一个using语句,而不是只调用Close – 在这种情况下,没有太大的区别,但通常using语句是要走的路。

至于测试结果状态 – 只需将响应转换为HttpWebResponse ,然后使用StatusCode属性。 像这样的东西:

 HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url); request.Timeout = 15000; request.Method = "HEAD"; // As per Lasse's comment try { using (HttpWebResponse response = (HttpWebResponse) request.GetResponse()) { return response.StatusCode == HttpStatusCode.OK; } } catch (WebException) { return false; }