我有一个接受 XML POST 方法的网络服务。它工作正常,然后在某个随机场合,它无法与服务器通信,并使用 message 抛出 IOException The target server failed to respond
。随后的调用工作正常。
它主要发生在我拨打一些电话然后让我的应用程序空闲 10-15 分钟时。之后我进行的第一次调用会返回此错误。
我尝试了几件事......
我设置了重试处理程序,如
HttpRequestRetryHandler retryHandler = new HttpRequestRetryHandler() {
public boolean retryRequest(IOException e, int retryCount, HttpContext httpCtx) {
if (retryCount >= 3){
Logger.warn(CALLER, "Maximum tries reached, exception would be thrown to outer block");
return false;
}
if (e instanceof org.apache.http.NoHttpResponseException){
Logger.warn(CALLER, "No response from server on "+retryCount+" call");
return true;
}
return false;
}
};
httpPost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryHandler);
但是这个重试从来没有被调用过。(是的,我正在使用正确的 instanceof 子句)。在调试此类时永远不会被调用。
我什至尝试设置HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);
但没有用。有人可以建议我现在能做什么吗?
重要 除了弄清楚为什么会出现异常之外,我最关心的一个重要问题是为什么重试处理程序不在这里工作?