Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache HTTP客户端:未捕获NoHttpResponseException异常?_Java_Apache Httpcomponents - Fatal编程技术网

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();
        }