HttpWebResponse没有返回404

时间:2012-11-02 15:29:32

标签: c# asp.net

我希望检查网站上的一系列图片,使用HttpWebRequest可能存在也可能不存在。但是,即使使用不存在的图像URL,响应仍包含200 OK状态代码。

正在检查的网站都使用自定义404页面,但在使用Firebug / Fiddler检查时返回正确的404代码。

public HttpStatusCode GetHeaders(string url)
{
    HttpStatusCode result = default(HttpStatusCode);

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    //request.AllowAutoRedirect = false;
    //request.Method = "GET";
    try
    {
        using (var response = request.GetResponse() as HttpWebResponse)
        {
            if (response != null)
            {
                result = response.StatusCode;
                response.Close();
            }
        }

        return result;
    }

    catch (Exception)
    {                    
        return HttpStatusCode.NotFound;                    
    }
}

任何想法?我一直在努力将这种情况分开两周。

1 个答案:

答案 0 :(得分:1)

服务器是否可能将您重定向到可用的“未找到”页面? 尝试停用AutoRedirect。

  webRequest.AllowAutoRedirect = false; 
  ...
  webRequest.Timeout = 1000;

然后检查重定向。 如果这不起作用,我想你必须解析网站,并留意一个像“找不到”的字符串......