首页 > 解决方案 > 如何从 Apache Http 客户端创建 Spring WebClient

问题描述

我想从HttpComponent的 org.apache.http.client.HttpClient 创建WebClient以在异步操作中使用它。关于如何做的任何想法

标签: javaspring-webfluxapache-httpcomponentsspring-webclientapache-httpclient-5.x

解决方案


随着Spring Framework 5.3Spring Boot 2.4的发布, Apache HttpClient 5.0和 Spring WebClient之间有了内置的集成。

HttpAsyncClientBuilder clientBuilder = HttpAsyncClients.custom();
clientBuilder.setDefaultRequestConfig(...);
CloseableHttpAsyncClient client = clientBuilder.build();
ClientHttpConnector connector = new HttpComponentsClientHttpConnector(client);

WebClient webClient = WebClient.builder().clientConnector(connector).build();

更新(基于@kolyaiks 的评论)

必要的依赖:

<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.1</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents.core5</groupId>
    <artifactId>httpcore5-reactive</artifactId>
    <version>5.1</version>
</dependency>

推荐阅读