【发布时间】:2012-03-09 04:30:30
【问题描述】:
我正在使用 DefaultHttpClient 进行连接。我想做的是“继续检查它是否还活着”,当超时时,重新连接。我怎样才能做到这一点 ?我试过那个实体不为空的consumeContent。它不适合我吗?
【问题讨论】:
-
更好的方法可能是简单地假设它是活着的,如果它不是,则相应地处理它。
-
好的,那么超时时如何处理。
我正在使用 DefaultHttpClient 进行连接。我想做的是“继续检查它是否还活着”,当超时时,重新连接。我怎样才能做到这一点 ?我试过那个实体不为空的consumeContent。它不适合我吗?
【问题讨论】:
处理此问题的一种方法是设置HttpRequestRetryHandler 并相应地处理重试。
client.setHttpRequestRetryHandler(retryHandler);
您还可以通过HttpParams 调整超时,如here 所述,这可能就足够了,具体取决于您的具体需求;然而,无论哪种方式,建立重试行为都是一种好方法。
final HttpParams httpParameters = yourHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, connectionTimeOutSec * 1000);
HttpConnectionParams.setSoTimeout (httpParameters, socketTimeoutSec * 1000);
【讨论】: