Я хочу возвратить false, если URL занимает более затем 5 секунд для соединения - как этот возможный 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;
}
Вы можете установить тайм-аут следующим образом:
con.setConnectTimeout(connectTimeout);
con.setReadTimeout(socketTimeout);