java - 如何创建一个不验证 SSL 证书的 CloseableHttpPipelinedClient?

标签 java http apache-httpclient-4.x apache-httpcomponents apache-httpasyncclient

我正在尝试使用具有 HTTP 管道支持的 Apache HttpAsyncClient。我想添加一个类似于此处讨论的全信任 SSL 策略 Ignoring SSL certificate in Apache HttpClient 4.3 (以及许多其他地方)。但我没有看到任何使用自定义 SSLContext 获取管道客户端生成器的方法:HttpAsyncClients.createPipelined() 方法不返回生成器,并且 HttpAsyncClients.custom() 构建器未构建 ClosableHttpPipelinedClient

最佳答案

这应该可以达到你想要的效果

DefaultConnectingIOReactor ioReactor = new DefaultConnectingIOReactor(IOReactorConfig.DEFAULT);
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(new TrustStrategy() {
    @Override
    public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        return true;
    }
}).build();
PoolingNHttpClientConnectionManager cm = new PoolingNHttpClientConnectionManager(
        ioReactor,
        RegistryBuilder.<SchemeIOSessionStrategy>create()
                .register("http", NoopIOSessionStrategy.INSTANCE)
                .register("https", new SSLIOSessionStrategy(sslContext))
                .build());
CloseableHttpPipeliningClient httpClient = HttpAsyncClients.createPipelining(cm);
httpClient.start();

关于java - 如何创建一个不验证 SSL 证书的 CloseableHttpPipelinedClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47045748/

相关文章:

c++ - 使用 HTTP 方法 POST 或 PUT 上传数据

java - JPA @PersistenceContext 注释的 JDO 等效项是什么

java - 如何检测用户是否通过应用程序设置从 Facebook 删除了该应用程序或更改了 Facebook 密码并重新访问该应用程序

java - WebClient - 如何获取请求正文?

java - 当我为 HttpClient 对象设置代理时会发生什么?

java - 如何创建不信任任何服务器证书的 SSLContext?

java - 获取 "Set-Cookie" header

java - 如何在 Android 的根文件夹中创建文件夹

php - Apache 不会自动在 root 中执行 index.php 的脚本

http - 为什么 Tomcat 会为我的 RESTful API 返回不同的 HEAD 和 GET 请求 header ?