Interface ClientResponse
- All Known Implementing Classes:
ClientResponseWrapper
public interface ClientResponse
Represents an HTTP response, as returned by
WebClient
and also
ExchangeFunction
. Provides access to the response status and
headers, and also methods to consume the response body.- Since:
- 5.0
- Author:
- Brian Clozel, Arjen Poutsma
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Defines a builder for a response.static interface
Represents the headers of the HTTP response. -
Method Summary
Modifier and TypeMethodDescription<T> T
body
(BodyExtractor<T, ? super org.springframework.http.client.reactive.ClientHttpResponse> extractor) Extract the body with the givenBodyExtractor
.<T> reactor.core.publisher.Flux<T>
bodyToFlux
(Class<? extends T> elementClass) Extract the body to aFlux
.<T> reactor.core.publisher.Flux<T>
bodyToFlux
(org.springframework.core.ParameterizedTypeReference<T> elementTypeRef) Extract the body to aFlux
.<T> reactor.core.publisher.Mono<T>
bodyToMono
(Class<? extends T> elementClass) Extract the body to aMono
.<T> reactor.core.publisher.Mono<T>
bodyToMono
(org.springframework.core.ParameterizedTypeReference<T> elementTypeRef) Extract the body to aMono
.org.springframework.util.MultiValueMap<String,
org.springframework.http.ResponseCookie> cookies()
Return the cookies of this response.static ClientResponse.Builder
create
(int statusCode, ExchangeStrategies strategies) Create a response builder with the given raw status code and strategies for reading the body.static ClientResponse.Builder
create
(org.springframework.http.HttpStatusCode statusCode) Create a response builder with the given status code and using default strategies for reading the body.static ClientResponse.Builder
create
(org.springframework.http.HttpStatusCode statusCode, List<org.springframework.http.codec.HttpMessageReader<?>> messageReaders) Create a response builder with the given status code and message body readers.static ClientResponse.Builder
create
(org.springframework.http.HttpStatusCode statusCode, ExchangeStrategies strategies) Create a response builder with the given status code and strategies for reading the body.<T> reactor.core.publisher.Mono<T>
Create aMono
that terminates with aWebClientResponseException
, containing the response status, headers, body, and the originating request.reactor.core.publisher.Mono<WebClientResponseException>
Create aWebClientResponseException
that contains the response status, headers, body, and the originating request.static ClientResponse.Builder
from
(ClientResponse other) Deprecated.headers()
Return the headers of this response.Return a log message prefix to use to correlate messages for this exchange.default ClientResponse.Builder
mutate()
Return a builder to mutate this response, for example to change the status, headers, cookies, and replace or transform the body.reactor.core.publisher.Mono<Void>
Release the body of this response.org.springframework.http.HttpRequest
request()
Return the request associated with the response.org.springframework.http.HttpStatusCode
Return the HTTP status code as anHttpStatusCode
value.Return the strategies used to convert the body of this response.reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>>
Return this response as a delayedResponseEntity
containing status and headers, but no body.<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<T>>
Return this response as a delayedResponseEntity
.<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<T>>
toEntity
(org.springframework.core.ParameterizedTypeReference<T> bodyTypeReference) Return this response as a delayedResponseEntity
.<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<T>>>
toEntityList
(Class<T> elementClass) Return this response as a delayed list ofResponseEntity
s.<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<T>>>
toEntityList
(org.springframework.core.ParameterizedTypeReference<T> elementTypeRef) Return this response as a delayed list ofResponseEntity
s.
-
Method Details
-
statusCode
org.springframework.http.HttpStatusCode statusCode()Return the HTTP status code as anHttpStatusCode
value.- Returns:
- the HTTP status as an HttpStatusCode value (never
null
)
-
headers
ClientResponse.Headers headers()Return the headers of this response. -
cookies
org.springframework.util.MultiValueMap<String,org.springframework.http.ResponseCookie> cookies()Return the cookies of this response. -
strategies
ExchangeStrategies strategies()Return the strategies used to convert the body of this response. -
request
org.springframework.http.HttpRequest request()Return the request associated with the response.- Since:
- 6.1
-
body
<T> T body(BodyExtractor<T, ? super org.springframework.http.client.reactive.ClientHttpResponse> extractor) Extract the body with the givenBodyExtractor
.- Type Parameters:
T
- the type of the body returned- Parameters:
extractor
- theBodyExtractor
that reads from the response- Returns:
- the extracted body
-
bodyToMono
Extract the body to aMono
.- Type Parameters:
T
- the element type- Parameters:
elementClass
- the class of element in theMono
- Returns:
- a mono containing the body of the given type
T
-
bodyToMono
<T> reactor.core.publisher.Mono<T> bodyToMono(org.springframework.core.ParameterizedTypeReference<T> elementTypeRef) Extract the body to aMono
.- Type Parameters:
T
- the element type- Parameters:
elementTypeRef
- the type reference of element in theMono
- Returns:
- a mono containing the body of the given type
T
-
bodyToFlux
Extract the body to aFlux
.- Type Parameters:
T
- the element type- Parameters:
elementClass
- the class of elements in theFlux
- Returns:
- a flux containing the body of the given type
T
-
bodyToFlux
<T> reactor.core.publisher.Flux<T> bodyToFlux(org.springframework.core.ParameterizedTypeReference<T> elementTypeRef) Extract the body to aFlux
.- Type Parameters:
T
- the element type- Parameters:
elementTypeRef
- the type reference of elements in theFlux
- Returns:
- a flux containing the body of the given type
T
-
releaseBody
reactor.core.publisher.Mono<Void> releaseBody()Release the body of this response.- Returns:
- a completion signal
- Since:
- 5.2
- See Also:
-
DataBufferUtils.release(DataBuffer)
-
toEntity
<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<T>> toEntity(Class<T> bodyClass) Return this response as a delayedResponseEntity
.- Type Parameters:
T
- response body type- Parameters:
bodyClass
- the expected response body type- Returns:
Mono
with theResponseEntity
-
toEntity
<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<T>> toEntity(org.springframework.core.ParameterizedTypeReference<T> bodyTypeReference) Return this response as a delayedResponseEntity
.- Type Parameters:
T
- response body type- Parameters:
bodyTypeReference
- a type reference describing the expected response body type- Returns:
Mono
with theResponseEntity
-
toEntityList
<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<T>>> toEntityList(Class<T> elementClass) Return this response as a delayed list ofResponseEntity
s.- Type Parameters:
T
- the type of elements in the list- Parameters:
elementClass
- the expected response body list element class- Returns:
Mono
with the list ofResponseEntity
s
-
toEntityList
<T> reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<List<T>>> toEntityList(org.springframework.core.ParameterizedTypeReference<T> elementTypeRef) Return this response as a delayed list ofResponseEntity
s.- Type Parameters:
T
- the type of elements in the list- Parameters:
elementTypeRef
- the expected response body list element reference type- Returns:
Mono
with the list ofResponseEntity
s
-
toBodilessEntity
reactor.core.publisher.Mono<org.springframework.http.ResponseEntity<Void>> toBodilessEntity()Return this response as a delayedResponseEntity
containing status and headers, but no body. Calling this method will release the body of the response.- Returns:
Mono
with the bodilessResponseEntity
- Since:
- 5.2
-
createException
reactor.core.publisher.Mono<WebClientResponseException> createException()Create aWebClientResponseException
that contains the response status, headers, body, and the originating request.- Returns:
- a
Mono
with the created exception - Since:
- 5.2
-
createError
<T> reactor.core.publisher.Mono<T> createError()Create aMono
that terminates with aWebClientResponseException
, containing the response status, headers, body, and the originating request.- Type Parameters:
T
- the reified type- Returns:
- a
Mono
that fails with aWebClientResponseException
. - Since:
- 6.0
- See Also:
-
logPrefix
String logPrefix()Return a log message prefix to use to correlate messages for this exchange.The prefix is based on ClientRequest.logPrefix(), which itself is based on the value of the
LOG_ID_ATTRIBUTE
request attribute, further surrounded with "[" and "]".- Returns:
- the log message prefix or an empty String if the
LOG_ID_ATTRIBUTE
is not set - Since:
- 5.2.3
-
mutate
Return a builder to mutate this response, for example to change the status, headers, cookies, and replace or transform the body.- Returns:
- a builder to mutate the response with
- Since:
- 5.3
-
from
Deprecated.as of 5.3 in favor of the instance basedmutate()
.Create a builder with the status, headers, and cookies of the given response.Note: Note that the body in the returned builder is
Flux.empty()
by default. To carry over the one from the original response, useotherResponse.bodyToFlux(DataBuffer.class)
or simply use the instance basedmutate()
method.- Parameters:
other
- the response to copy the status, headers, and cookies from- Returns:
- the created builder
-
create
Create a response builder with the given status code and using default strategies for reading the body.- Parameters:
statusCode
- the status code- Returns:
- the created builder
-
create
static ClientResponse.Builder create(org.springframework.http.HttpStatusCode statusCode, ExchangeStrategies strategies) Create a response builder with the given status code and strategies for reading the body.- Parameters:
statusCode
- the status codestrategies
- the strategies- Returns:
- the created builder
-
create
Create a response builder with the given raw status code and strategies for reading the body.- Parameters:
statusCode
- the status codestrategies
- the strategies- Returns:
- the created builder
- Since:
- 5.1.9
-
create
static ClientResponse.Builder create(org.springframework.http.HttpStatusCode statusCode, List<org.springframework.http.codec.HttpMessageReader<?>> messageReaders) Create a response builder with the given status code and message body readers.- Parameters:
statusCode
- the status codemessageReaders
- the message readers- Returns:
- the created builder
-
mutate()
.