檢查資源是否存在

/**
 * Checks if a resource exists by sending a HEAD-Request.
 * @param url The url of a resource which has to be checked.
 * @return true if the response code is 200 OK.
 */
public static final boolean checkIfResourceExists(URL url) throws IOException {
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("HEAD");
    int code = conn.getResponseCode();
    conn.disconnect();
    return code == 200;
}

說明:

如果你只是檢查資源是否存在,最好使用 HEAD 請求而不是 GET。這避免了傳輸資源的開銷。

請注意,如果響應程式碼為 200,則該方法僅返回 true。如果你預期重定向(即 3XX)響應,則可能需要增強該方法以兌現它們。

例:

checkIfResourceExists(new URL("http://images.google.com/")); // true
checkIfResourceExists(new URL("http://pictures.google.com/")); // false