Warum sollte das URLConnection-Timeout nach mehr als 6 Minuten anstelle von 5 Sekunden auftreten?
Ich kopiere diese Methode wörtlich aus meiner Anwendung, die noch nicht vollständig ist, aber versucht, mir einen Timeout-Stack-Trace bereitzustellen, wenn die Dinge nicht reibungslos verlaufen:
protected boolean isHttpAlive() {
boolean isHttpOk = false;
HttpURLConnection httpConnection = null;
try {
URL gurl = new URL("http://www.amazon.com/");
URLConnection connection = gurl.openConnection();
connection.setConnectTimeout(5 * 1000); // 5 seconds!
httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
isHttpOk = true;
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (httpConnection != null)
httpConnection.disconnect();
}
return isHttpOk;
}
Jetzt auf einem meiner Testgeräte (Droid), wenn es ein Problem gibt, bekomme ichdie Ausnahme aber erst danach6 Minuten and 36 Sekunden, nicht 5 Sekunden wie im obigen Code eingestellt.
Die Zeitüberschreitungsausnahme wird für die ausgelöstgetResponseCode()
.
Warum?
Was vermisse ich?