Class ServerHttpResponseDecorator
java.lang.Object
org.springframework.http.server.reactive.ServerHttpResponseDecorator
- All Implemented Interfaces:
HttpMessage
,ReactiveHttpOutputMessage
,ServerHttpResponse
- Direct Known Subclasses:
HttpHeadResponseDecorator
Wraps another
ServerHttpResponse
and delegates all methods to it.
Sub-classes can override specific methods selectively.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addCookie
(ResponseCookie cookie) Add the givenResponseCookie
.void
beforeCommit
(Supplier<? extends reactor.core.publisher.Mono<Void>> action) Register an action to apply just before the HttpOutputMessage is committed.Return aDataBufferFactory
that can be used to create the body.Return a mutable map with the cookies to send to the server.Return the headers of this message.static <T> T
getNativeResponse
(ServerHttpResponse response) Return the native response of the underlying server API, if possible, also unwrappingServerHttpResponseDecorator
if necessary.Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server.Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server.boolean
Whether the HttpOutputMessage is committed.reactor.core.publisher.Mono<Void>
Indicate that message handling is complete, allowing for any cleanup or end-of-processing tasks to be performed such as applying header changes made viaHttpMessage.getHeaders()
to the underlying HTTP message (if not applied already).boolean
setRawStatusCode
(Integer value) Set the HTTP status code to the given value (potentially non-standard and not resolvable through theHttpStatus
enum) as an integer.boolean
setStatusCode
(HttpStatus status) Set the HTTP status code of the response.toString()
reactor.core.publisher.Mono<Void>
writeAndFlushWith
(Publisher<? extends Publisher<? extends DataBuffer>> body) Use the givenPublisher
ofPublishers
to write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after eachPublisher<DataBuffer>
.reactor.core.publisher.Mono<Void>
writeWith
(Publisher<? extends DataBuffer> body) Use the givenPublisher
to write the body of the message to the underlying HTTP layer.
-
Constructor Details
-
ServerHttpResponseDecorator
-
-
Method Details
-
getDelegate
-
setStatusCode
Description copied from interface:ServerHttpResponse
Set the HTTP status code of the response.- Specified by:
setStatusCode
in interfaceServerHttpResponse
- Parameters:
status
- the HTTP status as anHttpStatus
enum value- Returns:
false
if the status code change wasn't processed because the HTTP response is committed,true
if successfully set.
-
getStatusCode
Description copied from interface:ServerHttpResponse
Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server. The return value may benull
if the status code value is outside theHttpStatus
enum range, or if there is no default value from the underlying server.- Specified by:
getStatusCode
in interfaceServerHttpResponse
-
setRawStatusCode
Description copied from interface:ServerHttpResponse
Set the HTTP status code to the given value (potentially non-standard and not resolvable through theHttpStatus
enum) as an integer.- Specified by:
setRawStatusCode
in interfaceServerHttpResponse
- Parameters:
value
- the status code value- Returns:
false
if the status code change wasn't processed because the HTTP response is committed,true
if successfully set.
-
getRawStatusCode
Description copied from interface:ServerHttpResponse
Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server. The return value may benull
if there is no default value from the underlying server.- Specified by:
getRawStatusCode
in interfaceServerHttpResponse
-
getHeaders
Description copied from interface:HttpMessage
Return the headers of this message.- Specified by:
getHeaders
in interfaceHttpMessage
- Returns:
- a corresponding HttpHeaders object (never
null
)
-
getCookies
Description copied from interface:ServerHttpResponse
Return a mutable map with the cookies to send to the server.- Specified by:
getCookies
in interfaceServerHttpResponse
-
addCookie
Description copied from interface:ServerHttpResponse
Add the givenResponseCookie
.- Specified by:
addCookie
in interfaceServerHttpResponse
- Parameters:
cookie
- the cookie to add
-
bufferFactory
Description copied from interface:ReactiveHttpOutputMessage
Return aDataBufferFactory
that can be used to create the body.- Specified by:
bufferFactory
in interfaceReactiveHttpOutputMessage
- Returns:
- a buffer factory
- See Also:
-
beforeCommit
Description copied from interface:ReactiveHttpOutputMessage
Register an action to apply just before the HttpOutputMessage is committed.Note: the supplied action must be properly deferred, e.g. via
Mono.defer(java.util.function.Supplier<? extends reactor.core.publisher.Mono<? extends T>>)
orMono.fromRunnable(java.lang.Runnable)
, to ensure it's executed in the right order, relative to other actions.- Specified by:
beforeCommit
in interfaceReactiveHttpOutputMessage
- Parameters:
action
- the action to apply
-
isCommitted
public boolean isCommitted()Description copied from interface:ReactiveHttpOutputMessage
Whether the HttpOutputMessage is committed.- Specified by:
isCommitted
in interfaceReactiveHttpOutputMessage
-
writeWith
Description copied from interface:ReactiveHttpOutputMessage
Use the givenPublisher
to write the body of the message to the underlying HTTP layer.- Specified by:
writeWith
in interfaceReactiveHttpOutputMessage
- Parameters:
body
- the body content publisher- Returns:
- a
Mono
that indicates completion or error
-
writeAndFlushWith
public reactor.core.publisher.Mono<Void> writeAndFlushWith(Publisher<? extends Publisher<? extends DataBuffer>> body) Description copied from interface:ReactiveHttpOutputMessage
Use the givenPublisher
ofPublishers
to write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after eachPublisher<DataBuffer>
.- Specified by:
writeAndFlushWith
in interfaceReactiveHttpOutputMessage
- Parameters:
body
- the body content publisher- Returns:
- a
Mono
that indicates completion or error
-
setComplete
Description copied from interface:ReactiveHttpOutputMessage
Indicate that message handling is complete, allowing for any cleanup or end-of-processing tasks to be performed such as applying header changes made viaHttpMessage.getHeaders()
to the underlying HTTP message (if not applied already).This method should be automatically invoked at the end of message processing so typically applications should not have to invoke it. If invoked multiple times it should have no side effects.
- Specified by:
setComplete
in interfaceReactiveHttpOutputMessage
- Returns:
- a
Mono
that indicates completion or error
-
getNativeResponse
Return the native response of the underlying server API, if possible, also unwrappingServerHttpResponseDecorator
if necessary.- Type Parameters:
T
- the expected native response type- Parameters:
response
- the response to check- Throws:
IllegalArgumentException
- if the native response can't be obtained- Since:
- 5.3.3
-
toString
-