Java 如何从ApacheHTTP客户端创建SpringWebClient

Java 如何从ApacheHTTP客户端创建SpringWebClient,java,spring-webflux,apache-httpcomponents,spring-webclient,apache-httpclient-5.x,Java,Spring Webflux,Apache Httpcomponents,Spring Webclient,Apache Httpclient 5.x,我想从的org.apache.http.client.HttpClient创建一个用于异步操作的客户端。你知道如何使用org.apache.http.client.HttpClient来实现它吗?这很难,因为它不是专门为它设计的,你可以做到,但这是一个安静的、有大量代码的解决方案。 最好使用为HttpAsyncClient(同样来自apache btw)设计的东西 在这里您可以找到一些信息和代码示例: 祝你好运对于org.apache.http.client.HttpClient,这很难,因为

我想从的org.apache.http.client.HttpClient创建一个用于异步操作的客户端。你知道如何使用org.apache.http.client.HttpClient来实现它吗?这很难,因为它不是专门为它设计的,你可以做到,但这是一个安静的、有大量代码的解决方案。 最好使用为HttpAsyncClient(同样来自apache btw)设计的东西

在这里您可以找到一些信息和代码示例:


祝你好运

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

在这里您可以找到一些信息和代码示例:


祝你好运

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

HttpAsyncClientBuilder clientBuilder=HttpAsyncClients.custom();
setDefaultRequestConfig(…);
CloseableHttpAsyncClient=clientBuilder.build();
ClientHttpConnector连接器=新的HttpComponents客户端HttpConnector(客户端);
WebClient WebClient=WebClient.builder().clientConnector(connector.build();

更新(基于@kolyaiks的评论)

必要的依赖关系:


org.apache.httpcomponents.client5
httpclient5
5.1
org.apache.httpcomponents.core5
httpcore5反应性
5.1

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

HttpAsyncClientBuilder clientBuilder=HttpAsyncClients.custom();
setDefaultRequestConfig(…);
CloseableHttpAsyncClient=clientBuilder.build();
ClientHttpConnector连接器=新的HttpComponents客户端HttpConnector(客户端);
WebClient WebClient=WebClient.builder().clientConnector(connector.build();

更新(基于@kolyaiks的评论)

必要的依赖关系:


org.apache.httpcomponents.client5
httpclient5
5.1
org.apache.httpcomponents.core5
httpcore5反应性
5.1

我甚至不知道你到底想达到什么目的。到目前为止你做了什么?哪里遇到了问题?请提供更多详细信息Shi Thomas Hi Sergey,我基本上有http客户端对象,需要创建一个web客户端对象来进行异步调用,因为这是只支持反应式编程的。找不到解决方法thatSpring目前支持Jetty和Netty客户端。看见基本上,任何实施都是可行的。目前,httpcomponent的实现不可用-它可能会在将来添加。使用的工作正在进行中。看,我甚至不知道你到底想达到什么目的。到目前为止你做了什么?哪里遇到了问题?请提供更多详细信息Shi Thomas Hi Sergey,我基本上有http客户端对象,需要创建一个web客户端对象来进行异步调用,因为这是只支持反应式编程的。找不到解决方法thatSpring目前支持Jetty和Netty客户端。看见基本上,任何实施都是可行的。目前,httpcomponent的实现不可用-它可能会在将来添加。使用的工作正在进行中。请看。如果我们没有使用HttpAsyncClient的选项,您可以分享什么可能是脏的解决方案吗?因为我们只有HTTPClient对象可用,而我们需要使用基于Spring Webflux的WebClient进行rest调用。如果我们没有使用HttpAsyncClient的选项,您可以分享什么可能是脏的解决方案吗我们只有HTTPClient对象可用,而我们需要使用基于Spring Webflux的WebClient来进行rest调用。我想提到的是,您必须添加一些Maven依赖项才能启用此功能:
httpclient5
httpcore5父项
httpcore5-reactive
我想提到的是,您必须添加一些Maven依赖项才能启用它:
httpclient5
httpcore5-parent
httpcore5-reactive