如何处理HTTP超时?

时间:2013-08-05 09:22:37

标签: java android json http rest

在我的应用程序中,我正在从ReST Web服务下载JSON数据。大多数情况下,这种方法很好,但有时连接会超时。

这是我用来设置超时的代码......

HttpConnectionParams.setConnectionTimeout( httpParameters, 20000 );
HttpConnectionParams.setSoTimeout( httpParameters, 42000 );

如果连接超时,应用程序崩溃并关闭,我该如何处理超时?

3 个答案:

答案 0 :(得分:5)

HttpClient类抛出一个ConnectTimeoutException异常,所以你应该监听它:

try {
        HttpResponse response = client.execute(post);
                    // do something with response
    } catch (ConnectTimeoutException e) {
        Log.e(TAG, "Timeout", e);
    } catch (SocketTimeoutException e) {
        Log.e(TAG, " Socket timeout", e);
    }

答案 1 :(得分:2)

增加等待回复的时间,如:

HttpConnectionParams.setConnectionTimeout( httpParameters, 60000 ); //1 minute
HttpConnectionParams.setSoTimeout( httpParameters, 90000 ); // 1.5 minute

答案 2 :(得分:0)

我试图捕获各种异常类型,我发现捕获IOException正如我想的那样工作!