2010-03-17 65 views

回答

8

它在Java中非常相似。您只需評估HTTP響應代碼:

final URL url = new URL("http://some.where/file.html"); 
url.openConnection().getResponseCode(); 

可以找到一個更完整的示例here

+1

我只是想指出,有些網站實際上不會返回404狀態碼,而是重定向到自定義錯誤頁面(並返回200成功)。這是不好的行爲,但值得確保您正在測試的網站沒有提供這些「軟」404s。 – Kris 2010-03-17 12:37:28

+0

1)您可能想要在'openConnection()'方法上捕獲'UnknownHostException'和'FileNotFoundException'(都只是'IOException')。 2)您還想將'URLConnection'強制轉換爲'HttpURLConnection',以便能夠調用'getResponseCode()'方法。而@Kris:重定向會導致你需要以任何方式處理301或302。該URL可能已被更新。 – BalusC 2010-03-17 12:56:22

+0

此外,如果文件相當大,您最終將下載整個內容以檢查是否存在。如果您發出HEAD請求而不是GET,則會獲得更好的里程數。 – 2010-04-11 18:34:54

4

貢獻一個乾淨的版本,更容易複製和粘貼。

try { 
    final URL url = new URL("http://your/url"); 
    HttpURLConnection huc = (HttpURLConnection) url.openConnection(); 
    int responseCode = huc.getResponseCode(); 
    // Handle response code here... 
} catch (UnknownHostException uhe) { 
    // Handle exceptions as necessary 
} catch (FileNotFoundException fnfe) { 
    // Handle exceptions as necessary 
} catch (Exception e) { 
    // Handle exceptions as necessary 
} 
相關問題