setHttpRequestRetryHandler

setHttpRequestRetryHandler

HTTP公共客户端4.12 tutorial section on exception handling清楚地表明,应该可以通过执行以下操作来设置请求重试处理程序...
httpclient.setHttpRequestRetryHandler(myRetryHandler);
在日食中,我尝试过,它报告HttpClient没有这样的方法。这建议我将客户端强制转换为AbstractHttpClient,然后致电。 setHttpRequestRetryHandler像这样:
((AbstractHttpClient) httpclient).setHttpRequestRetryHandler(myRetryHandler);
然后我的代码就可以了,但是文档和API之间的这种差异让我怀疑我是否在做我不应该做的事情。

文档是错误的还是我?

最佳答案

你是完全正确的。该文档使用了具体的DefaultHttpClient(这是AbstractHttpClient的子类,因此还有setHttpRequestRetryHandler()方法。

当您做正确的事并编程到HttpClient接口(可悲的是没有公开该方法)时,您必须进行该讨厌的转换。

看来Apache团队已决定保持HttpClient接口超级干净,但要牺牲客户端代码:-(

10-06 06:01