Apache Httpcomponent Fluent API在发生一些IO错误后挂起

时间:2015-08-06 13:39:07

标签: java apache-httpclient-4.x fluent

我正在使用 Apache Http Fluent API 4.3.2 来定期向不太可靠的API发出HTTPS请求。我的代码如下所示:

try {
    Request get = Request.Get(url);
    get.connectTimeout(10000);
    get.socketTimeout(10000);
    Executor executor = Executor
        .newInstance(HttpClientBuilder.create().build());
    String response = executor.execute(get).returnContent().asString();
} catch (Exception e) {
    LOG.error("Http get threw an exception", e);
}

它可以工作几天然后抛出

  

javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接

来自execute方法的数百次。

经过一定数量的异常,方法execute永远阻止。 我可以建议执行者用尽连接,但不知道该怎么做。

一个月没有答案?我准备接受像“没有解决方案”这样的答案。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,即在404错误后Fluent挂起了。

我通过中止请求来解决它。

catch

http://hc.apache.org/httpcomponents-client-ga/fluent-hc/apidocs/org/apache/http/client/fluent/Request.html#abort()