我们有一个网址,我们需要检查网页是否有效。我们尝试了以下代码: WebResponse objResponse = null;
WebRequest objRequest = HttpWebRequest.Create(URL);
objRequest.Method = "HEAD";
try
{
objResponse = objRequest.GetResponse();
objResponse.Close();
}
catch (Exception ex)
{
}
如果无法获得响应,上面的代码会出现异常但即使我们在该页面上出现“服务器错误”也能正常工作?任何帮助如何获得服务器错误?
答案 0 :(得分:5)
HttpResponse
类有StatusCode
属性,您可以检查。如果它是200,一切都还可以。
您可以将代码更改为:
HttpWebResponse objResponse = null;
var objRequest = HttpWebRequest.Create("http://google.com");
objResponse = (HttpWebResponse) objRequest.GetResponse();
if(objResponse.StatusCode != HttpStatusCode.OK)
{
Console.WriteLine("It failed");
}else{
Console.WriteLine("It worked");
}
答案 1 :(得分:2)
首先,在响应中使用using
语句 - 无论发生什么,你都会处理它。
现在,如果抛出WebException
,您可以抓住它并查看WebException.Response
以查找状态代码和发回的任何数据:
WebRequest request = WebRequest.Create(URL);
request.Method = "HEAD";
try
{
using (WebResponse response = request.GetResponse())
{
// Use data for success case
}
}
catch (WebException ex)
{
HttpWebResponse errorResponse = (HttpWebResponse) ex.Response;
HttpStatusCode status = errorResponse.StatusCode;
// etc
}