You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从HttpClient4升级到HttpClient5:setSSLContext方法替代方案求助

HttpClient 5 替换 setSSLContext 的解决方案

HttpClient 5 正式移除了HttpClientBuilder.setSSLContext()方法,需要通过配置SSLConnectionSocketFactory并关联到客户端构建器来实现相同功能,以下是具体修改方案:

核心修改点

  • 使用SSLConnectionSocketFactoryBuilder构建带有目标SSLContext的套接字工厂
  • 通过HttpClientBuilder.setSSLSocketFactory()替代原有的setSSLContext()方法

修改后的完整代码

@Autowired
public AdministrativoClient(RestTemplate restTemplate, @Value("${administrativo.service.url}") String pathUrl) {
    TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
    SSLContext sslContext;
    try {
        sslContext = org.apache.http.ssl.SSLContexts.custom()
                .loadTrustMaterial(null, acceptingTrustStrategy)
                .build();

        // HttpClient5 中使用SSLConnectionSocketFactoryBuilder创建套接字工厂
        SSLConnectionSocketFactory sslSocketFactory = SSLConnectionSocketFactoryBuilder.create()
                .setSslContext(sslContext)
                .build();

        // 替换setSSLContext为setSSLSocketFactory
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(sslSocketFactory)
                .build();

        // 注意:如果使用Spring框架,需确保HttpComponentsClientHttpRequestFactory适配HttpClient5
        // Spring 5.3+ / Spring Boot 2.4+ 版本已支持HttpClient5
        HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
        requestFactory.setHttpClient(httpClient);

        this.restTemplate = restTemplate;
        restTemplate.setRequestFactory(requestFactory);
    } catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {
        e.printStackTrace();
    }
    this.pathUrl = pathUrl;
}

额外注意事项

  • 确认导入正确的包:org.apache.hc.client5.http.socket.SSLConnectionSocketFactory和org.apache.hc.client5.http.socket.SSLConnectionSocketFactoryBuilder
  • 确保Spring版本与HttpClient5兼容,避免因依赖版本不匹配导致的其他问题

内容的提问来源于stack exchange,提问作者kengi ortega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 00:00:09