我想从HttpComponent的 org.apache.http.client.HttpClient 创建WebClient以在异步操作中使用它。关于如何做的任何想法
问问题
3837 次
2 回答
6
随着Spring Framework 5.3和Spring 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 回答