查询404文件
前几天编写了如何判断一远程文件(图片等)是否存在的一程序,而今天又遇类似一问题,如何检测一网址是否出现404错误,信息量一大,一条条删太麻烦了,下面用程序来解决这个问题。
我用代码试了一下,发现HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();这句出错,则表示这一网址是有问题的。这时我就想到,用try.....catch来解决这个方法。
具体判断404错误的函数如下: 程序代码static bool isUrl404(string sURL)
{
bool bExists = true;
try
{
//用于把一请求的响应将会被放到一个WebRequest对象里
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sURL);
request.Method = "HEAD";
request.AllowAutoRedirect = false; //设置请求是否应跟随重定向响应
//然后这个GetResponse对象被用来建立一个流来取出XML的值
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//关闭对象
response.Close();
request.Abort();
}
catch (WebException ex)
{
HttpWebResponse response = (HttpWebResponse)ex.Response;
if (response != null) //排除对象为空的错误
{
if (response.StatusCode == HttpStatusCode.NotFound) //判断是否是404错误
bExists = false;
}
}
return bExists;
}
我用代码试了一下,发现HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();这句出错,则表示这一网址是有问题的。这时我就想到,用try.....catch来解决这个方法。
具体判断404错误的函数如下: 程序代码static bool isUrl404(string sURL)
{
bool bExists = true;
try
{
//用于把一请求的响应将会被放到一个WebRequest对象里
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sURL);
request.Method = "HEAD";
request.AllowAutoRedirect = false; //设置请求是否应跟随重定向响应
//然后这个GetResponse对象被用来建立一个流来取出XML的值
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//关闭对象
response.Close();
request.Abort();
}
catch (WebException ex)
{
HttpWebResponse response = (HttpWebResponse)ex.Response;
if (response != null) //排除对象为空的错误
{
if (response.StatusCode == HttpStatusCode.NotFound) //判断是否是404错误
bExists = false;
}
}
return bExists;
}