我想检查页面的状态(404,移动等)。我该怎么做? ATM我正在做下面的事情,它只告诉我页面是否存在。此外,我怀疑异常使我的代码变慢(我测试了它)
static public bool CheckExist(string url)
{
HttpWebRequest wreq = null;
HttpWebResponse wresp = null;
bool ret = false;
try
{
wreq = (HttpWebRequest)WebRequest.Create(url);
wreq.KeepAlive = true;
//wreq.Method = "HEAD";
wresp = (HttpWebResponse)wreq.GetResponse();
ret = true;
}
catch (System.Net.WebException)
{
}
finally
{
if (wresp != null)
wresp.Close();
}
return ret;
}
答案 0 :(得分:1)
HttpWebResponse类公开一个StatusCode属性,该属性从HttpStatusCode枚举中返回一个值。在非错误情况下,这会直接为您提供状态代码(404未找到,403未授权,301永久移动,200 OK等等)。在错误的情况下,WebException类公开一个Status属性 - 取自不同的枚举,但是你将能够从我想到的那个中识别你想要的案例。
答案 1 :(得分:1)
您可以像这样获取http错误代码:
catch (System.Net.WebException e)
{
int HttpStatusCode = (int)((HttpWebResponse)e.Response).StatusCode;
}