NET 4和C#。
如果Uri(字符串)返回HTTP status codes 200,则我需要一个能够返回Bool值的类。
目前,我有这段代码(尝试使用它来尝试是否可以连接到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;
}