Java Apache HTTP客户端:未捕获NoHttpResponseException异常?
如果捕获到Java Apache HTTP客户端:未捕获NoHttpResponseException异常?,java,apache-httpcomponents,Java,Apache Httpcomponents,如果捕获到NoHttpResponseException,我想获取发送请求的重试总次数。我试图用try-catch块实现该行为,但出现了一个奇怪的行为: 在我实现这个行为之前,会抛出异常,程序会中断 在我实现了这个行为之后,将不再抛出异常,程序将正常运行。但是,catch部分中的代码似乎没有真正执行: 我的类有一个属性: 受保护的可关闭httpClient httpClient 该属性在构造函数中初始化: public AbstractData() { RequestCo
NoHttpResponseException
,我想获取发送请求的重试总次数。我试图用try-catch块实现该行为,但出现了一个奇怪的行为:
catch
部分中的代码似乎没有真正执行:受保护的可关闭httpClient httpClient代码>
该属性在构造函数中初始化:
public AbstractData() {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(28800000)
.setConnectTimeout(28800000)
.setSocketTimeout(28800000)
.build();
this.httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setMaxConnPerRoute(4)
.setMaxConnTotal(4)
.build();
}
我的问题是,我在try-catch块中实现行为的方式是否存在逻辑错误?有没有更好的方法直接更改DefaultHttpRequestRetryHandler
来执行此行为(我试图查找,但没有找到一个示例来检查请求发送了多少次重试尝试)。您是否收到“发生了另一个异常”在输出中?@Shoaeb no eithera您在等待28800000吗?您可以添加System.out.println(new Date());response=httpClient.execute(httpPost,responseHandler);System.out.println(新日期());。retryRequest()中的ExecutionCount是否有帮助
public AbstractData() {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(28800000)
.setConnectTimeout(28800000)
.setSocketTimeout(28800000)
.build();
this.httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setMaxConnPerRoute(4)
.setMaxConnTotal(4)
.build();
}