0

トライキャッチでラップせずにページが存在するかどうかを確認するにはどうすればよいですか

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

ページが存在しない場合、myWebRequest.GetResponse()が発生すると404例外が発生します。

falseまたはstatusのtrueを返すmyWebRequest.DoesPageExist()のようなものはありませんか?

4

2 に答える 2

3

これは不可能です。

ページが存在するかどうかを確認するには、Webリクエストを実行する必要があります。ページが存在しない場合、サーバーはエラーコードを返します。ページが存在する場合、サーバーはページのコンテンツを返します。これはすべて単一のサーバーリクエストに1つです。最初にチェックする場合は、2つのサーバーリクエストが必要になりますが、これは非効率的です。

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 に答える