为Apache流利执行程序设置最大http连接

时间:2014-11-25 04:17:41

标签: connection apache-httpcomponents apache-fluent-api

Apache流畅的API允许简单的单行http调用,如:

String content = Request.Get(url).execute().returnContent().asString();

...fluent.Executor执行,其javadoc说:

  

一个PoolingHttpClientConnectionManager,每个路由最多100个连接,内部最多使用200个连接

我想更改用于特定呼叫的最大连接参数,但我找不到访问上述代码使用的连接管理器的方法。我试过了:

Executor.newInstance().execute(Request.Get("")).returnContent().asString();

但无法在Executor返回的Executor.newInstance()上更改这些参数。

是否可以使用流畅的API,但使用自定义最大连接值?

1 个答案:

答案 0 :(得分:2)

可以将流程执行器的实例绑定到任意HttpClient实例

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
CloseableHttpClient client = HttpClients.custom()
        .setConnectionManager(cm)
        .build();
cm.setDefaultMaxPerRoute(15);
Executor.newInstance(client).execute(Request.Get("/")).discardContent();