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 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
(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
(ParameterizedTypeReference<T> elementTypeRef) Extract the body to aMono
.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
(HttpStatusCode statusCode) Create a response builder with the given status code and using default strategies for reading the body.static ClientResponse.Builder
create
(HttpStatusCode statusCode, List<HttpMessageReader<?>> messageReaders) Create a response builder with the given status code and message body readers.static ClientResponse.Builder
create
(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.request()
Return the request associated with the response.Return the HTTP status code as anHttpStatusCode
value.Return the strategies used to convert the body of this response.reactor.core.publisher.Mono<ResponseEntity<Void>>
Return this response as a delayedResponseEntity
containing status and headers, but no body.<T> reactor.core.publisher.Mono<ResponseEntity<T>>
Return this response as a delayedResponseEntity
.<T> reactor.core.publisher.Mono<ResponseEntity<T>>
toEntity
(ParameterizedTypeReference<T> bodyTypeReference) Return this response as a delayedResponseEntity
.<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>>
toEntityList
(Class<T> elementClass) Return this response as a delayed list ofResponseEntity
s.<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>>
toEntityList
(ParameterizedTypeReference<T> elementTypeRef) Return this response as a delayed list ofResponseEntity
s.
-
Method Details
-
statusCode
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
MultiValueMap<String,ResponseCookie> cookies()Return the cookies of this response. -
strategies
ExchangeStrategies strategies()Return the strategies used to convert the body of this response. -
request
HttpRequest request()Return the request associated with the response.- Since:
- 6.1
-
body
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
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
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:
-
toEntity
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<ResponseEntity<T>> toEntity(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
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<ResponseEntity<List<T>>> toEntityList(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<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
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(HttpStatusCode statusCode, List<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()
.