Методы HttpURLConnection при невозможности соединиться с сервером бросают IOException, в котором текстом указана причина невозможности выполнения метода. Однако HttpURLConnection создан на обычных сокетах, исключения от которых так же можно ловить, хотя они и не описаны в документации на методы HttpURLConnection.
Соответсвенно, при срабатывании любого из Timeout-ов, мы будем получать исключение java.net.SocketTimeoutException. Сообщение в исключениях будет различаться. Это будет либо "connect timed out", либо "read timed out".
Оригинал
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestMethod("HEAD");
con.setConnectTimeout(5000); //set timeout to 5 seconds
con.setReadTimeout(10000); //set timeout to 10 seconds
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
} catch (java.net.SocketTimeoutException e) {
return false;
} catch (java.io.IOException e) {
return false;
}
Соответсвенно, при срабатывании любого из Timeout-ов, мы будем получать исключение java.net.SocketTimeoutException. Сообщение в исключениях будет различаться. Это будет либо "connect timed out", либо "read timed out".
Оригинал
Комментариев нет:
Отправить комментарий