public interface ClientResponse
WebClient and also
ExchangeFunction. Provides access to the response status and
headers, and also methods to consume the response body.
NOTE: When using a ClientResponse
through the WebClient
exchange() method,
you have to make sure that the body is consumed or released by using
one of the following methods:
body(BodyExtractor)bodyToMono(Class) or
bodyToMono(ParameterizedTypeReference)bodyToFlux(Class) or
bodyToFlux(ParameterizedTypeReference)toEntity(Class) or
toEntity(ParameterizedTypeReference)toEntityList(Class) or
toEntityList(ParameterizedTypeReference)toBodilessEntity()releaseBody()bodyToMono(Void.class) if no response content is
expected. However keep in mind that if the response does have content, the
connection will be closed and will not be placed back in the pool.| Modifier and Type | Interface and Description |
|---|---|
static interface |
ClientResponse.Builder
Defines a builder for a response.
|
static interface |
ClientResponse.Headers
Represents the headers of the HTTP response.
|
| Modifier and Type | Method and Description |
|---|---|
<T> T |
body(BodyExtractor<T,? super ClientHttpResponse> extractor)
Extract the body with the given
BodyExtractor. |
<T> reactor.core.publisher.Flux<T> |
bodyToFlux(Class<? extends T> elementClass)
Extract the body to a
Flux. |
<T> reactor.core.publisher.Flux<T> |
bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)
Extract the body to a
Flux. |
<T> reactor.core.publisher.Mono<T> |
bodyToMono(Class<? extends T> elementClass)
Extract the body to a
Mono. |
<T> reactor.core.publisher.Mono<T> |
bodyToMono(ParameterizedTypeReference<T> elementTypeRef)
Extract the body to a
Mono. |
MultiValueMap<String,ResponseCookie> |
cookies()
Return cookies of this response.
|
static ClientResponse.Builder |
create(HttpStatus statusCode)
Create a response builder with the given status code and using default strategies for
reading the body.
|
static ClientResponse.Builder |
create(HttpStatus statusCode,
ExchangeStrategies strategies)
Create a response builder with the given status code and strategies for reading the body.
|
static ClientResponse.Builder |
create(HttpStatus statusCode,
List<HttpMessageReader<?>> messageReaders)
Create a response builder with the given status code and message body readers.
|
static ClientResponse.Builder |
create(int statusCode,
ExchangeStrategies strategies)
Create a response builder with the given raw status code and strategies for reading the body.
|
reactor.core.publisher.Mono<WebClientResponseException> |
createException()
Creates a
WebClientResponseException based on the status code,
headers, and body of this response as well as the corresponding request. |
static ClientResponse.Builder |
from(ClientResponse other)
Create a builder with the status, headers, and cookies of the given response.
|
ClientResponse.Headers |
headers()
Return the headers of this response.
|
int |
rawStatusCode()
Return the (potentially non-standard) status code of this response.
|
reactor.core.publisher.Mono<Void> |
releaseBody()
Releases the body of this response.
|
HttpStatus |
statusCode()
Return the HTTP status code as an
HttpStatus enum value. |
ExchangeStrategies |
strategies()
Return the strategies used to convert the body of this response.
|
reactor.core.publisher.Mono<ResponseEntity<Void>> |
toBodilessEntity()
Return this response as a delayed
ResponseEntity containing
status and headers, but no body. |
<T> reactor.core.publisher.Mono<ResponseEntity<T>> |
toEntity(Class<T> bodyClass)
Return this response as a delayed
ResponseEntity. |
<T> reactor.core.publisher.Mono<ResponseEntity<T>> |
toEntity(ParameterizedTypeReference<T> bodyTypeReference)
Return this response as a delayed
ResponseEntity. |
<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> |
toEntityList(Class<T> elementClass)
Return this response as a delayed list of
ResponseEntitys. |
<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> |
toEntityList(ParameterizedTypeReference<T> elementTypeRef)
Return this response as a delayed list of
ResponseEntitys. |
HttpStatus statusCode()
HttpStatus enum value.null)IllegalArgumentException - in case of an unknown HTTP status codeHttpStatus.valueOf(int)int rawStatusCode()
statusCode(),
HttpStatus.resolve(int)ClientResponse.Headers headers()
MultiValueMap<String,ResponseCookie> cookies()
ExchangeStrategies strategies()
<T> T body(BodyExtractor<T,? super ClientHttpResponse> extractor)
BodyExtractor.T - the type of the body returnedextractor - the BodyExtractor that reads from the response<T> reactor.core.publisher.Mono<T> bodyToMono(Class<? extends T> elementClass)
Mono.T - the element typeelementClass - the class of element in the MonoT<T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> elementTypeRef)
Mono.T - the element typeelementTypeRef - the type reference of element in the MonoT<T> reactor.core.publisher.Flux<T> bodyToFlux(Class<? extends T> elementClass)
Flux.T - the element typeelementClass - the class of elements in the FluxT<T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)
Flux.T - the element typeelementTypeRef - the type reference of elements in the FluxTreactor.core.publisher.Mono<Void> releaseBody()
DataBufferUtils.release(DataBuffer)<T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(Class<T> bodyClass)
ResponseEntity.T - response body typebodyClass - the expected response body typeMono with the ResponseEntity<T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ParameterizedTypeReference<T> bodyTypeReference)
ResponseEntity.T - response body typebodyTypeReference - a type reference describing the expected response body typeMono with the ResponseEntity<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(Class<T> elementClass)
ResponseEntitys.T - the type of elements in the listelementClass - the expected response body list element classMono with the list of ResponseEntitys<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)
ResponseEntitys.T - the type of elements in the listelementTypeRef - the expected response body list element reference typeMono with the list of ResponseEntitysreactor.core.publisher.Mono<ResponseEntity<Void>> toBodilessEntity()
ResponseEntity containing
status and headers, but no body. Calling this method will
release the body of the response.Mono with the bodiless ResponseEntityreactor.core.publisher.Mono<WebClientResponseException> createException()
WebClientResponseException based on the status code,
headers, and body of this response as well as the corresponding request.Mono with a WebClientResponseException based on this responsestatic ClientResponse.Builder from(ClientResponse other)
other - the response to copy the status, headers, and cookies fromstatic ClientResponse.Builder create(HttpStatus statusCode)
statusCode - the status codestatic ClientResponse.Builder create(HttpStatus statusCode, ExchangeStrategies strategies)
statusCode - the status codestrategies - the strategiesstatic ClientResponse.Builder create(int statusCode, ExchangeStrategies strategies)
statusCode - the status codestrategies - the strategiesstatic ClientResponse.Builder create(HttpStatus statusCode, List<HttpMessageReader<?>> messageReaders)
statusCode - the status codemessageReaders - the message readers