HttpURLConnection getResponseCode() deos nicht zurück, wenn es keine Internet-Verbindung

Ich bin mit einem HttpURLConnection um zu überprüfen, ob die server-URL erreichbar ist oder nicht, indem mit dem folgenden code:

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

Dieser code funktioniert unter normalen Bedingungen. Aber wenn es keine Internet-Verbindung (weil entweder der router ist nicht angeschlossen oder nicht die hotspot), httpConnection.getResponseCode() wird nicht ausgeführt (die Funktion nicht zurück). Wie kann ich dieses Problem beheben?

  • Versuchen Sie, ein code-snippet in TRY CATCH Block. Was ich vermute ist (HttpURLConnection) knownURL.openConnection(); wirft eine socket exception, wenn es kein internet, so dass Sie nicht bis an ` httpConnection.getResponseCode();`
  • knownURL.openConnection() ausgeführt wird, und es kommt nicht zu catch-block. Es ist halt auf beim Aufruf getResponseCode()
  • versuchen Sie Debuggen. Und ja, Sie werden immer eine Ausnahme. Das ist, warum. Überprüfen Sie Ihre logcat und poste hier vielleicht.
  • HttpUrlConnection funktioniert ohne internet?
InformationsquelleAutor mindus | 2014-11-03
Schreibe einen Kommentar