4

我们有一个 url,我们需要检查网页是否处于活动状态。我们尝试了以下代码: WebResponse objResponse = null;

        WebRequest objRequest = HttpWebRequest.Create(URL);
        objRequest.Method = "HEAD";
        try
        {
            objResponse = objRequest.GetResponse();
            objResponse.Close();                
        }
        catch (Exception ex)
        {

        }

如果无法获得响应,上面的代码会给出异常,但即使我们在该页面上有“服务器错误”也能正常工作?任何帮助如何获得服务器错误?

4

2 回答 2

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");
        }
于 2010-10-05T10:44:15.077 回答
2

一方面,using在响应中使用声明——这样无论发生什么你都会处理它。

现在,如果 aWebException被抛出,您可以捕获它并查看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
}
于 2010-10-05T10:46:33.543 回答