如何检查页面是否存在而不将其包装在try catch
中Dim myWebResponse As HttpWebResponse = CType(myWebRequest.GetResponse(), HttpWebResponse)
如果页面不存在,那么当myWebRequest.GetResponse(
)触发时我会得到404例。
有没有像myWebRequest.DoesPageExist()这样的东西,它返回true或者状态?
答案 0 :(得分:3)
这是不可能的。
要检查页面是否存在,您必须执行Web请求,如果页面不存在,服务器将返回错误代码。如果页面存在,则服务器返回页面内容。所有这些都是单个服务器请求中的一个,如果您先检查,则需要两个服务器请求,这是无效的。
执行Web请求时,应始终捕获异常,因为可能会发生许多意外情况。不仅页面不存在,连接可能超时或中断,服务器本身也会关闭....你应该捕获所有这些异常。
答案 1 :(得分:1)
您是否尝试过使用ajax? (这个例子使用jQuery)
$.ajax({
url:'http://www.example.com/somefile.ext',
type:'HEAD',
error: function()
{
//file not exists
},
success: function()
{
//file exists
}
});
以下是使用jquery
检查404状态,whitout的代码function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
取自: