如何檢查是否一個頁面存在,而不在嘗試捕捉檢查是否存在一個頁面,而無需使用嘗試捕捉
Dim myWebResponse As HttpWebResponse = CType(myWebRequest.GetResponse(), HttpWebResponse)
包裹它如果頁面不存在,我得到一個404 exeption時myWebRequest.GetResponse(
)火災。
是不是有一些像myWebRequest.DoesPageExist()返回true或false狀態?
如何檢查是否一個頁面存在,而不在嘗試捕捉檢查是否存在一個頁面,而無需使用嘗試捕捉
Dim myWebResponse As HttpWebResponse = CType(myWebRequest.GetResponse(), HttpWebResponse)
包裹它如果頁面不存在,我得到一個404 exeption時myWebRequest.GetResponse(
)火災。
是不是有一些像myWebRequest.DoesPageExist()返回true或false狀態?
這是不可能的。
要檢查頁面是否存在,您必須執行Web請求,並且如果頁面不存在,服務器將返回錯誤代碼。如果該頁面存在,則服務器返回頁面內容。所有這些都在一個服務器請求中,如果您首先檢查,則需要兩個服務器請求,這是不夠高效的。
當你執行一個web請求時,你應該總是捕捉異常,因爲可能會發生許多意想不到的事情。不僅該頁面不存在,連接可能會超時或中斷,服務器本身已關閉....並且您應該捕獲所有這些異常。
你試過用ajax做過嗎? (本例使用jQuery的)
$.ajax({
url:'http://www.example.com/somefile.ext',
type:'HEAD',
error: function()
{
//file not exists
},
success: function()
{
//file exists
}
});
下面是用於檢查404個狀態碼,whitout使用jQuery
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
摘自:
你可以用Ajax嘗試呼... http://stackoverflow.com/questions/3646914/how-do-i-check- if-file-exists-in-jquery-or-javascript – WraithNath 2012-07-23 10:35:40
我可以問你想達到什麼嗎?我的意思是,你爲什麼要調用一個可能不存在的URL?正如我所看到的,如果你打電話給這個網址,你應該期待它存在,所以如果它不存在的話它確實是一個特殊事件。將此表示爲例外是有道理的,不是嗎? – Mithon 2012-07-23 10:35:39