net 4和c#。
如果Uri(字符串)返回HTTP status codes 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;
}
答案 0 :(得分:30)
首先,最好为您的回复设置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;
}