Class ReactorClientHttpConnector
java.lang.Object
org.springframework.http.client.reactive.ReactorClientHttpConnector
- All Implemented Interfaces:
ClientHttpConnector
Reactor-Netty implementation of
ClientHttpConnector
.- Since:
- 5.0
- Author:
- Brian Clozel, Rossen Stoyanchev
- See Also:
-
HttpClient
-
Constructor Summary
ConstructorDescriptionDefault constructor.ReactorClientHttpConnector
(ReactorResourceFactory factory, Function<reactor.netty.http.client.HttpClient, reactor.netty.http.client.HttpClient> mapper) Constructor with externally managed Reactor Netty resources, includingLoopResources
for event loop threads, andConnectionProvider
for the connection pool.ReactorClientHttpConnector
(reactor.netty.http.client.HttpClient httpClient) Constructor with a pre-configuredHttpClient
instance. -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<ClientHttpResponse>
connect
(HttpMethod method, URI uri, Function<? super ClientHttpRequest, reactor.core.publisher.Mono<Void>> requestCallback) Connect to the origin server using the givenHttpMethod
andURI
and apply the givenrequestCallback
when the HTTP request of the underlying API can be initialized and written to.
-
Constructor Details
-
ReactorClientHttpConnector
public ReactorClientHttpConnector()Default constructor. InitializesHttpClient
via:HttpClient.create().compress()
-
ReactorClientHttpConnector
public ReactorClientHttpConnector(ReactorResourceFactory factory, Function<reactor.netty.http.client.HttpClient, reactor.netty.http.client.HttpClient> mapper) Constructor with externally managed Reactor Netty resources, includingLoopResources
for event loop threads, andConnectionProvider
for the connection pool.This constructor should be used only when you don't want the client to participate in the Reactor Netty global resources. By default the client participates in the Reactor Netty global resources held in
HttpResources
, which is recommended since fixed, shared resources are favored for event loop concurrency. However, consider declaring aReactorResourceFactory
bean withglobalResources=true
in order to ensure the Reactor Netty global resources are shut down when the Spring ApplicationContext is closed.- Parameters:
factory
- the resource factory to obtain the resources frommapper
- a mapper for further initialization of the created client- Since:
- 5.1
-
ReactorClientHttpConnector
public ReactorClientHttpConnector(reactor.netty.http.client.HttpClient httpClient) Constructor with a pre-configuredHttpClient
instance.- Parameters:
httpClient
- the client to use- Since:
- 5.1
-
-
Method Details
-
connect
public reactor.core.publisher.Mono<ClientHttpResponse> connect(HttpMethod method, URI uri, Function<? super ClientHttpRequest, reactor.core.publisher.Mono<Void>> requestCallback) Description copied from interface:ClientHttpConnector
Connect to the origin server using the givenHttpMethod
andURI
and apply the givenrequestCallback
when the HTTP request of the underlying API can be initialized and written to.- Specified by:
connect
in interfaceClientHttpConnector
- Parameters:
method
- the HTTP request methoduri
- the HTTP request URIrequestCallback
- a function that prepares and writes to the request, returning a publisher that signals when it's done writing. Implementations can return aMono<Void>
by callingReactiveHttpOutputMessage.writeWith(org.reactivestreams.Publisher<? extends org.springframework.core.io.buffer.DataBuffer>)
orReactiveHttpOutputMessage.setComplete()
.- Returns:
- publisher for the
ClientHttpResponse
-