7

我正在使用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;
}

此代码在正常情况下工作正常。但是当没有互联网连接时(因为路由器断开或不是热点),httpConnection.getResponseCode()不执行(函数不返回)。我怎样才能解决这个问题?

4

2 回答 2

6

httpConnection.setConnectTimeout(5000) 是连接超时。

这不是超时httpConnection.getResponseCode()

如果添加httpConnection.setReadTimeout(2000),httpConnection.getResponseCode()应该在没有可用连接时抛出异常。

于 2015-02-12T09:11:47.547 回答
0

您可能在较高层有一个 try catch 块,它正在捕获 sockettimeout 异常。

于 2014-11-03T07:14:24.087 回答