如果 URL 连接时间超过 5 秒,我想返回 false - 这怎么可能使用 Java?这是我用来检查 URL 是否有效的代码
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
最佳答案
HttpURLConnection
有一个 setConnectTimeout方法。
只需将超时设置为5000毫秒,然后捕获java.net.SocketTimeoutException
您的代码应如下所示:
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
con.setConnectTimeout(5000); //set timeout to 5 seconds
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
} catch (java.net.SocketTimeoutException e) {
return false;
} catch (java.io.IOException e) {
return false;
}
关于java - HttpURLConnection 超时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2799938/