检查页面是否存在而不使用try catch

时间:2012-07-23 10:27:33

标签: c# asp.net vb.net

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

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

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

有没有像myWebRequest.DoesPageExist()这样的东西,它返回true或者状态?

2 个答案:

答案 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;
}

取自:

How do I check if file exists in jQuery or JavaScript?