Настройки тайм-аута HttpURLConnection

Я хочу возвратить false, если URL занимает более затем 5 секунд для соединения - как этот возможный Java использования? Вот код, который я использую к проверке, если URL допустим

HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
119
задан Michael 23 February 2018 в 09:38
поделиться

2 ответа

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;
}


194
ответ дан 24 November 2019 в 01:46
поделиться

Вы можете установить тайм-аут следующим образом:

con.setConnectTimeout(connectTimeout);
con.setReadTimeout(socketTimeout);
109
ответ дан 24 November 2019 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: