Check if a url is reachable - Help in optimizing a Class
net 4 and c#.
I need a Class able to return a Bool value if an Uri (string) return HTTP status codes 200.
At the moment I have this code (it work using try to see if it is possible connect to the Uri) but I would like implemented with "HttpStatusCode.OK" instead.
- Do you know a better approach?
Thanks.
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 (Excep开发者_开发百科tion)
{
testStatus = false; // Uri does not exist
}
// Result
return testStatus;
}
Well, firstly it would be better to have a using
statement for your response instead of just calling Close
- in this case there's not much difference, but in general using
statements are the way to go.
As for testing the result status - just cast the response to HttpWebResponse
and then use the StatusCode
property. Something like this:
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;
}
精彩评论