Class AbstractServerHttpResponse
- All Implemented Interfaces:
- HttpMessage,- ReactiveHttpOutputMessage,- ServerHttpResponse
- Direct Known Subclasses:
- AbstractListenerServerHttpResponse,- MockServerHttpResponse
ServerHttpResponse implementations.- Since:
- 5.0
- Author:
- Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze, Brian Clozel
- 
Constructor SummaryConstructorsConstructorDescriptionAbstractServerHttpResponse(DataBufferFactory dataBufferFactory) AbstractServerHttpResponse(DataBufferFactory dataBufferFactory, HttpHeaders headers) 
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddCookie(ResponseCookie cookie) Add the givenResponseCookie.protected abstract voidAdd cookies fromgetHeaders()to the underlying response.protected abstract voidInvoked when the response is getting committed allowing subclasses to make apply header values to the underlying response.protected abstract voidWrite the status code to the underlying response.voidbeforeCommit(Supplier<? extends reactor.core.publisher.Mono<Void>> action) Register an action to apply just before the HttpOutputMessage is committed.final DataBufferFactoryReturn aDataBufferFactorythat can be used to create the body.protected reactor.core.publisher.Mono<Void>doCommit()A variant ofdoCommit(Supplier)for a response without a body.protected reactor.core.publisher.Mono<Void>ApplybeforeCommitactions, apply the response status and headers/cookies, and write the response body.Return a mutable map with the cookies to send to the server.Return the headers of this message.abstract <T> TReturn the underlying server response.Deprecated.Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server.booleanWhether 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).booleansetRawStatusCode(Integer statusCode) Set the HTTP status code to the given value as an integer.booleansetStatusCode(HttpStatusCode status) Set the HTTP status code of the response.protected voidtouchDataBuffer(DataBuffer buffer) Allow subclasses to associate a hint with the data buffer if it is a pooled buffer and supports leak tracking.final reactor.core.publisher.Mono<Void>writeAndFlushWith(Publisher<? extends Publisher<? extends DataBuffer>> body) Use the givenPublisherofPublishersto write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after eachPublisher<DataBuffer>.protected abstract reactor.core.publisher.Mono<Void>writeAndFlushWithInternal(Publisher<? extends Publisher<? extends DataBuffer>> body) Write to the underlying the response, and flush after eachPublisher<DataBuffer>.final reactor.core.publisher.Mono<Void>writeWith(Publisher<? extends DataBuffer> body) Use the givenPublisherto write the body of the message to the underlying HTTP layer.protected abstract reactor.core.publisher.Mono<Void>writeWithInternal(Publisher<? extends DataBuffer> body) Write to the underlying the response.
- 
Constructor Details- 
AbstractServerHttpResponse
- 
AbstractServerHttpResponse
 
- 
- 
Method Details- 
bufferFactoryDescription copied from interface:ReactiveHttpOutputMessageReturn aDataBufferFactorythat can be used to create the body.- Specified by:
- bufferFactoryin interface- ReactiveHttpOutputMessage
- Returns:
- a buffer factory
- See Also:
 
- 
setStatusCodeDescription copied from interface:ServerHttpResponseSet the HTTP status code of the response.- Specified by:
- setStatusCodein interface- ServerHttpResponse
- Parameters:
- status- the HTTP status as an- HttpStatusCodevalue
- Returns:
- falseif the status code change wasn't processed because the HTTP response is committed,- trueif successfully set.
 
- 
getStatusCodeDescription copied from interface:ServerHttpResponseReturn 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 benullif there is no default value from the underlying server.- Specified by:
- getStatusCodein interface- ServerHttpResponse
 
- 
setRawStatusCodeDescription copied from interface:ServerHttpResponseSet the HTTP status code to the given value as an integer.- Specified by:
- setRawStatusCodein interface- ServerHttpResponse
- Parameters:
- statusCode- the status code value
- Returns:
- falseif the status code change wasn't processed because the HTTP response is committed,- trueif successfully set.
 
- 
getRawStatusCodeDeprecated.Description copied from interface:ServerHttpResponseReturn 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 benullif there is no default value from the underlying server.- Specified by:
- getRawStatusCodein interface- ServerHttpResponse
 
- 
getHeadersDescription copied from interface:HttpMessageReturn the headers of this message.- Specified by:
- getHeadersin interface- HttpMessage
- Returns:
- a corresponding HttpHeaders object (never null)
 
- 
getCookiesDescription copied from interface:ServerHttpResponseReturn a mutable map with the cookies to send to the server.- Specified by:
- getCookiesin interface- ServerHttpResponse
 
- 
addCookieDescription copied from interface:ServerHttpResponseAdd the givenResponseCookie.- Specified by:
- addCookiein interface- ServerHttpResponse
- Parameters:
- cookie- the cookie to add
 
- 
getNativeResponsepublic abstract <T> T getNativeResponse()Return the underlying server response.Note: This is exposed mainly for internal framework use such as WebSocket upgrades in the spring-webflux module. 
- 
beforeCommitDescription copied from interface:ReactiveHttpOutputMessageRegister 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:
- beforeCommitin interface- ReactiveHttpOutputMessage
- Parameters:
- action- the action to apply
 
- 
isCommittedpublic boolean isCommitted()Description copied from interface:ReactiveHttpOutputMessageWhether the HttpOutputMessage is committed.- Specified by:
- isCommittedin interface- ReactiveHttpOutputMessage
 
- 
writeWithDescription copied from interface:ReactiveHttpOutputMessageUse the givenPublisherto write the body of the message to the underlying HTTP layer.- Specified by:
- writeWithin interface- ReactiveHttpOutputMessage
- Parameters:
- body- the body content publisher
- Returns:
- a Monothat indicates completion or error
 
- 
writeAndFlushWithpublic final reactor.core.publisher.Mono<Void> writeAndFlushWith(Publisher<? extends Publisher<? extends DataBuffer>> body) Description copied from interface:ReactiveHttpOutputMessageUse the givenPublisherofPublishersto write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after eachPublisher<DataBuffer>.- Specified by:
- writeAndFlushWithin interface- ReactiveHttpOutputMessage
- Parameters:
- body- the body content publisher
- Returns:
- a Monothat indicates completion or error
 
- 
setCompleteDescription copied from interface:ReactiveHttpOutputMessageIndicate 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:
- setCompletein interface- ReactiveHttpOutputMessage
- Returns:
- a Monothat indicates completion or error
 
- 
doCommitA variant ofdoCommit(Supplier)for a response without a body.- Returns:
- a completion publisher
 
- 
doCommitprotected reactor.core.publisher.Mono<Void> doCommit(@Nullable Supplier<? extends reactor.core.publisher.Mono<Void>> writeAction) ApplybeforeCommitactions, apply the response status and headers/cookies, and write the response body.- Parameters:
- writeAction- the action to write the response body (may be- null)
- Returns:
- a completion publisher
 
- 
writeWithInternalprotected abstract reactor.core.publisher.Mono<Void> writeWithInternal(Publisher<? extends DataBuffer> body) Write to the underlying the response.- Parameters:
- body- the publisher to write with
 
- 
writeAndFlushWithInternalprotected abstract reactor.core.publisher.Mono<Void> writeAndFlushWithInternal(Publisher<? extends Publisher<? extends DataBuffer>> body) Write to the underlying the response, and flush after eachPublisher<DataBuffer>.- Parameters:
- body- the publisher to write and flush with
 
- 
applyStatusCodeprotected abstract void applyStatusCode()Write the status code to the underlying response. This method is called once only.
- 
applyHeadersprotected abstract void applyHeaders()Invoked when the response is getting committed allowing subclasses to make apply header values to the underlying response.Note that some subclasses use an HttpHeadersinstance that wraps an adapter to the native response headers such that changes are propagated to the underlying response on the go. That means this callback might not be used other than for specialized updates such as setting the contentType or characterEncoding fields in a Servlet response.
- 
applyCookiesprotected abstract void applyCookies()Add cookies fromgetHeaders()to the underlying response. This method is called once only.
- 
touchDataBufferAllow subclasses to associate a hint with the data buffer if it is a pooled buffer and supports leak tracking.- Parameters:
- buffer- the buffer to attach a hint to
- Since:
- 5.3.2
 
 
-