gpt4 book ai didi

java - HttpClient 同时设置 SSLHostnameVerifier 和 ConnectionManager

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

Registry<ConnectionSocketFactory> reg =RegistryBuilder<ConnectionSocketFactory>create().register("https", new  
SSLConnectionSocketFactory(ctx)).register("http", new PlainConnectionSocketFactory())
.build();

PoolingHttpClientConnectionManager cm = newPoolingHttpClientConnectionManager(reg);

client = HttpClients.custom()
.setConnectionManager(cm)
.setDefaultRequestConfig(config)
.setSSLHostnameVerifier(new NoopHostnameVerifier())
.build();

我使用 NoopH​​ostnameVerifier 是因为我不想验证 SSL,但在我的 ConnectionManager 中存在基本逻辑并且没有机会忘记 ConnectionManager。

问题是,如果我有 ConnectionManager 和 SSLHostnameVerifier(NoopH​​ostnameVerifier),我会收到以下错误:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

可能是什么导致了这个问题?

最佳答案

这是对我有用的。我找到了here .

PoolingHttpClientConnectionManager cm;
try {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();
clientBuilder.setSslcontext(sslContext);
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, new AllowAllHostnameVerifier());
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", sslSocketFactory)
.build();
cm = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
} catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {
cm = new PoolingHttpClientConnectionManager();
}

关于java - HttpClient 同时设置 SSLHostnameVerifier 和 ConnectionManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364585/

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