Java 如何在PoollightTPClientConnectionManager中设置setMaxPerRoute?

Java 如何在PoollightTPClientConnectionManager中设置setMaxPerRoute?,java,connection-pooling,apache-httpclient-4.x,Java,Connection Pooling,Apache Httpclient 4.x,我有poolighttpclientconnectionmanager可以设置每条路由的最大连接数。我正在用另一种方式做: poolingHttpClientConnectionManager.setDefaultMaxPerRoute(5); poolingHttpClientConnectionManager.setMaxPerRoute(new HttpRoute(HttpHost.create(url)), 3); 例如,我的url是https://repo.maven.apache.

我有
poolighttpclientconnectionmanager
可以设置每条路由的最大连接数。我正在用另一种方式做:

poolingHttpClientConnectionManager.setDefaultMaxPerRoute(5);
poolingHttpClientConnectionManager.setMaxPerRoute(new HttpRoute(HttpHost.create(url)), 3);
例如,我的
url
https://repo.maven.apache.org/maven2
。 因此,我有默认的最大每路由5和3每个特定的url。如果我打电话

poolingHttpClientConnectionManager.getStats(new HttpRoute(HttpHost.create(url))); 
我收到的结果是
PoolStats
max=3
,所以现在一切正常

但是,当我使用池连接管理器创建客户端并调用日志中显示的相同url时:

PoolingHttpClientConnectionManager - Connection leased: [id: 0][route: {s}->https://repo.maven.apache.org:443][total kept alive: 0; route allocated: 1 of 5; total allocated: 1 of 200]
正如我所见,它仍然使用5个连接作为该示例url的最大连接数。
所以我的问题是如何设置每条路由的最大连接数以使其正常工作?

好的,我已经设法用下一个代码修复了它:

// code to create HttpRoute the same as in apache library
private HttpRoute getHttpRouteForUrl(String url) throws URISyntaxException
{
    URI uri = new URI(url);
    boolean secure = uri.getScheme().equalsIgnoreCase("https");
    int port = uri.getPort();
    if (uri.getPort() > 0)
    {
        port = uri.getPort();
    }
    else if (uri.getScheme().equalsIgnoreCase("https"))
    {
        port = 443;
    }
    else if (uri.getScheme().equalsIgnoreCase("http"))
    {
        port = 80;
    }
    else
    {
        LOGGER.warn("Unknown port of uri %s", repository);
    }
    HttpHost httpHost = new HttpHost(uri.getHost(), port, uri.getScheme());
    // TODO check whether we need this InetAddress as second param
    return new HttpRoute(httpHost, null, secure);
}
如果我们将此
HttpRoute
用于
setMaxPerRoute
的话,一切都会正常工作