我正在使用HttpURLConnection
通过使用以下代码来检查服务器URL是否可用:
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;
}
该代码在正常情况下可以正常工作。但是,如果没有Internet连接(因为路由器已断开连接或热点未连接),则不执行
httpConnection.getResponseCode()
(该函数不返回)。我怎样才能解决这个问题? 最佳答案
httpConnection.setConnectTimeout(5000)
是连接超时。
这不是httpConnection.getResponseCode()
的超时。
如果添加httpConnection.setReadTimeout(2000)
,则在没有可用连接时httpConnection.getResponseCode()
应该引发异常。