gpt4 book ai didi

ssl - 我正在尝试使用 PoolingHttpClientConnectionManager 和 CloseableHttpClient 为 HTTPS 创建一个具有单个连接的连接池并重用它

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:21 27 4
gpt4 key购买 nike

尝试创建一个连接池,其中只会创建一个 HTTPS 连接,并且当后续请求到来时,将使用以前的连接池。目前,每当新连接建立并且之前的连接进入时间等待状态时,我都试图点击任何请求。

下面是我正在使用的代码片段,它适用于 HTTP 连接但不适用于 HTTPS

  SslConfigurator sslConfig = SslConfigurator.newInstance().keyStoreFile(this.connectionInfo.getKeyStorePath()).keyStorePassword(connectionInfo.getKeyStorePassword()).keyStoreType("JKS").trustStoreFile(this.connectionInfo.getKeyStorePath()).trustStorePassword(connectionInfo.getKeyStorePassword()).securityProtocol("TLS");
logger.info("SSL CONFIG Accepted");
sslContext = sslConfig.createSSLContext();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext,NoopHostnameVerifier.INSTANCE);
logger.info("SSL CONTEXT CREATED, Building Client" );

Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create().register("https", sslsf).build();
connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
connManager.setMaxTotal(1);
connManager.setDefaultMaxPerRoute(1);

config = RequestConfig.custom().setConnectTimeout(60000).setConnectionRequestTimeout(60000).setSocketTimeout(60000).build();
client = HttpClients.custom().setDefaultRequestConfig(config).setConnectionManager(connManager).build();

最佳答案

connManager.setMaxTotal(1);

我不确定为什么您认为这没有效果,因为这肯定会将池中的连接总数一次限制为一个。

在您的特定情况下,您应该使用 BasicHttpClientConnectionManager 而不是 PoolingHttpClientConnectionManager

关于ssl - 我正在尝试使用 PoolingHttpClientConnectionManager 和 CloseableHttpClient 为 HTTPS 创建一个具有单个连接的连接池并重用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com