在我的应用程序中,我正在从ReST Web服务下载JSON数据。大多数时候,这个工作正常,但有时连接会超时。如何处理HTTP超时?
这是我用来设置超时代码...
HttpConnectionParams.setConnectionTimeout(httpParameters, 20000);
HttpConnectionParams.setSoTimeout(httpParameters, 42000);
如果连接超时,应用程序崩溃和关闭,如何处理超时?
在我的应用程序中,我正在从ReST Web服务下载JSON数据。大多数时候,这个工作正常,但有时连接会超时。如何处理HTTP超时?
这是我用来设置超时代码...
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);
}
我试图捕捉这个异常,但它不起作用。 –
修正它以捕获两者。 – VM4
增加你的等待就像响应时间:
HttpConnectionParams.setConnectionTimeout(httpParameters, 60000); //1 minute
HttpConnectionParams.setSoTimeout(httpParameters, 90000); // 1.5 minute
我曾试图抓住各种异常类型,我发现捕获IOException异常工作,因为我想!
这是因为SocketTimeoutException是IOException的子类型。 :) – VM4
@VM啊好吧。谢谢,知道的非常有用 –
简单的把'try-catch'块并捕获TimeOut。 – user370305
连接超时抛出“java.net.SocketTimeoutException:套接字未连接”,套接字超时“java.net.SocketTimeoutException:操作超时”。所以请尝试赶上 –
你需要接受虚拟机的答案这是他的想法。 –