Class AbstractClientHttpRequest
java.lang.Object
org.springframework.http.client.reactive.AbstractClientHttpRequest
- All Implemented Interfaces:
ClientHttpRequest, HttpMessage, ReactiveHttpOutputMessage
- Direct Known Subclasses:
MockClientHttpRequest
Base class for
ClientHttpRequest implementations.- Since:
- 5.0
- Author:
- Rossen Stoyanchev, Brian Clozel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdd attributes fromgetAttributes()to the underlying request.protected abstract voidAdd cookies fromgetHeaders()to the underlying request.protected abstract voidApply header changes fromgetHeaders()to the underlying request.voidbeforeCommit(Supplier<? extends reactor.core.publisher.Mono<Void>> action) Register an action to apply just before the HttpOutputMessage is committed.protected reactor.core.publisher.Mono<Void> doCommit()A variant ofdoCommit(Supplier)for a request without body.protected reactor.core.publisher.Mono<Void> ApplybeforeCommitactions, apply the request headers/cookies, and write the request body.Return a mutable map of the request attributes.Return a mutable map of request cookies to send to the server.Return the headers of this message.protected HttpHeadersInitialize the read-only headers after the request is committed.booleanWhether the HttpOutputMessage is committed.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ClientHttpRequest
getMethod, getNativeRequest, getURIMethods inherited from interface ReactiveHttpOutputMessage
bufferFactory, setComplete, writeAndFlushWith, writeWith
-
Constructor Details
-
AbstractClientHttpRequest
public AbstractClientHttpRequest() -
AbstractClientHttpRequest
-
-
Method Details
-
getHeaders
Description copied from interface:HttpMessageReturn the headers of this message.- Specified by:
getHeadersin interfaceHttpMessage- Returns:
- a corresponding HttpHeaders object (never
null)
-
initReadOnlyHeaders
Initialize the read-only headers after the request is committed.By default, this method simply applies a read-only wrapper. Subclasses can do the same for headers from the native request.
- Since:
- 5.3.15
-
getCookies
Description copied from interface:ClientHttpRequestReturn a mutable map of request cookies to send to the server.- Specified by:
getCookiesin interfaceClientHttpRequest
-
getAttributes
Description copied from interface:ClientHttpRequestReturn a mutable map of the request attributes.- Specified by:
getAttributesin interfaceClientHttpRequest
-
beforeCommit
Description copied from interface:ReactiveHttpOutputMessageRegister an action to apply just before the HttpOutputMessage is committed.Note: the supplied action must be properly deferred, for example, via
Mono.defer(Supplier)orMono.fromRunnable(Runnable), to ensure it's executed in the right order, relative to other actions.- Specified by:
beforeCommitin interfaceReactiveHttpOutputMessage- Parameters:
action- the action to apply
-
isCommitted
public boolean isCommitted()Description copied from interface:ReactiveHttpOutputMessageWhether the HttpOutputMessage is committed.- Specified by:
isCommittedin interfaceReactiveHttpOutputMessage
-
doCommit
A variant ofdoCommit(Supplier)for a request without body.- Returns:
- a completion publisher
-
doCommit
protected reactor.core.publisher.Mono<Void> doCommit(@Nullable Supplier<? extends Publisher<Void>> writeAction) ApplybeforeCommitactions, apply the request headers/cookies, and write the request body.- Parameters:
writeAction- the action to write the request body (may benull)- Returns:
- a completion publisher
-
applyHeaders
protected abstract void applyHeaders()Apply header changes fromgetHeaders()to the underlying request. This method is called once only. -
applyCookies
protected abstract void applyCookies()Add cookies fromgetHeaders()to the underlying request. This method is called once only. -
applyAttributes
protected void applyAttributes()Add attributes fromgetAttributes()to the underlying request. This method is called once only.- Since:
- 6.2
-