繁体   English   中英

如何处理HTTP超时?

[英]How to handle HTTP timeout?

在我的应用程序中,我正在从ReST Web服务下载JSON数据。 在大多数情况下,这可以正常工作,但是有时连接会超时。

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

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

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

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);
    }

增加等待响应的时间,例如:

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

我尝试捕获各种异常类型,发现捕获IOException可以按我的意愿工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM