我使用的是HttpURLConnection
来检查服务器URL是否可用或不使用下面的代码:HttpURLConnection的getResponseCode()DEOS不会返回如果没有互联网连接
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块'中。我怀疑是'(HttpURLConnection)knownURL.openConnection();'当没有互联网时抛出一个套接字异常,所以你没有到达'httpConnection.getResponseCode();' – 2014-11-03 06:54:23
knownURL.openConnection()正在执行,它是没有来阻止。当调用getResponseCode() – mindus 2014-11-03 07:03:48
尝试调试它时停止。是的,你会得到一个例外。这就是为什么。检查你的logcat,也许在这里发帖。 – Darpan 2014-11-03 07:20:06