0

如何检查页面是否存在而不将其包装在try catch中

Dim myWebResponse As HttpWebResponse = CType(myWebRequest.GetResponse(), HttpWebResponse)

如果页面不存在,那么当myWebRequest.GetResponse() 触发时我会得到 404 异常。

是不是有类似 myWebRequest.DoesPageExist() 的东西返回 true 或 false 或状态?

4

2 回答 2

3

这是不可能的。

要检查页面是否存在,您必须执行 Web 请求,如果页面不存在,服务器将返回错误代码。如果页面存在,则服务器返回页面内容。所有这些都是一个服务器请求中的一个,如果您先检查,您将需要两个服务器请求,这是低效的。

当你执行一个 web 请求时,你应该总是捕获异常,因为很多意想不到的事情可能会发生。不仅该页面不存在,连接可能超时或中断,服务器本身已关闭......而且您应该捕获所有这些异常。

于 2012-07-23T10:33:04.593 回答
1

你试过用ajax做吗?(本示例使用 jQuery)

$.ajax({
    url:'http://www.example.com/somefile.ext',
    type:'HEAD',
    error: function()
    {
        //file not exists
    },
    success: function()
    {
        //file exists
    }
});

这是使用 jquery 检查 404 状态的代码

function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}

取自:

如何检查文件是否存在于 jQuery 或 JavaScript 中?

于 2012-07-23T10:46:46.867 回答