Я использую HttpURLConnection
, чтобы проверить, доступен ли URL сервера или не используя следующий код:HttpURLConnection getResponseCode() ДУС не возвращается, если нет подключения к Интернету
try {
boolean connectionFailed = false;
URL knownURL = new URL("http://www.google.com");
httpConnection = (HttpURLConnection) knownURL.openConnection();
httpConnection.setConnectTimeout(5000);
responseCode = httpConnection.getResponseCode();
if (responseCode != 200) {
status = ConnectionStatus.NOT_CONNECTED;
}
}
catch(Exception e) {
connctionFailed = true;
}
Этот код под работает нормально нормальные условия. Но когда нет подключения к Интернету (поскольку либо маршрутизатор отключен, либо нет точки доступа), httpConnection.getResponseCode()
не выполняется (функция не возвращается). Как я могу это исправить?
Попробуйте добавить фрагмент кода в 'TRY CATCH Block'. То, что я подозреваю, является '(HttpURLConnection) knownURL.openConnection();' вызывает исключение сокета, когда нет Интернета, поэтому вы не достигаете 'httpConnection.getResponseCode();' –
knownURL.openConnection() выполняется, и это не придет, чтобы поймать блок. Когда вы вызываете getResponseCode() – mindus
, попробуйте отладить его. И да, вы получаете исключение. Вот почему. Возможно, проверьте свой лог-код и разместите здесь. – Darpan