检查资源是否存在
/**
* 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