3

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

4

2 回答 2

6

随着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>
于 2020-09-20T18:12:33.467 回答
0

使用 org.apache.http.client.HttpClient 很难,因为它不是为它设计的,你可以这样做,但这将是一个安静的、杂乱无章的解决方案,需要自己编写大量代码。更好地使用为 HttpAsyncClient 设计的东西(也来自 apache btw。)

在这里您可以找到一些信息和代码示例: https ://hc.apache.org/httpcomponents-asyncclient-ga/quickstart.html

祝你好运

于 2018-08-09T11:55:54.660 回答