Apache HttpClient Interim Error: NoHttpResponseException
我有一个Web服务,它接受带有XML的POST方法。它工作正常,然后在一些随机情况下,它无法与服务器进行通信,从而抛出带有消息的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);
但这次重试从未被调用。(是的,我使用的是右实例条款)。调试时,从不调用此类。
我甚至尝试过设置,但没有用。有人可以建议我现在可以做什么吗?HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);
重要除了弄清楚为什么我会遇到异常之外,我还有一个重要的担忧是为什么重试处理程序不能在这里工作?