Interface WebClient.ResponseSpec
- Enclosing interface:
- WebClient
public static interface WebClient.ResponseSpec
Contract for specifying response operations following the exchange.
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T> reactor.core.publisher.Flux<T>bodyToFlux(Class<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<T> elementClass)Extract the body to aMono.<T> reactor.core.publisher.Mono<T>bodyToMono(ParameterizedTypeReference<T> elementTypeRef)Extract the body to aMono.WebClient.ResponseSpeconRawStatus(IntPredicate statusCodePredicate, Function<ClientResponse,reactor.core.publisher.Mono<? extends Throwable>> exceptionFunction)Variant ofonStatus(Predicate, Function)that works with raw status code values.WebClient.ResponseSpeconStatus(Predicate<HttpStatus> statusPredicate, Function<ClientResponse,reactor.core.publisher.Mono<? extends Throwable>> exceptionFunction)Provide a function to map specific error status codes to an error signal to be propagated downstream instead of the response.reactor.core.publisher.Mono<ResponseEntity<Void>>toBodilessEntity()Return the response as a delayedResponseEntitycontaining status and headers, but no body.<T> reactor.core.publisher.Mono<ResponseEntity<T>>toEntity(Class<T> bodyClass)Return the response as a delayedResponseEntity.<T> reactor.core.publisher.Mono<ResponseEntity<T>>toEntity(ParameterizedTypeReference<T> bodyTypeReference)Return the response as a delayedResponseEntity.<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>>toEntityList(Class<T> elementClass)Return the response as a delayed list ofResponseEntitys.<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>>toEntityList(ParameterizedTypeReference<T> elementTypeRef)Return the response as a delayed list ofResponseEntitys.
Method Detail
onStatus
WebClient.ResponseSpec onStatus(Predicate<HttpStatus> statusPredicate, Function<ClientResponse,reactor.core.publisher.Mono<? extends Throwable>> exceptionFunction)
Provide a function to map specific error status codes to an error signal to be propagated downstream instead of the response.By default, if there are no matching status handlers, responses with status codes >= 400 are mapped to
WebClientResponseExceptionwhich is created withClientResponse.createException().To suppress the treatment of a status code as an error and process it as a normal response, return
Mono.empty()from the function. The response will then propagate downstream to be processed.To ignore an error response completely, and propagate neither response nor error, use a
filter, or addonErrorResumedownstream, for example:webClient.get() .uri("https://abc.com/account/123") .retrieve() .bodyToMono(Account.class) .onErrorResume(WebClientResponseException.class, ex -> ex.getRawStatusCode() == 404 ? Mono.empty() : Mono.error(ex));- Parameters:
statusPredicate- to match responses withexceptionFunction- to map the response to an error signal- Returns:
- this builder
- See Also:
ClientResponse.createException()
onRawStatus
WebClient.ResponseSpec onRawStatus(IntPredicate statusCodePredicate, Function<ClientResponse,reactor.core.publisher.Mono<? extends Throwable>> exceptionFunction)
Variant ofonStatus(Predicate, Function)that works with raw status code values. This is useful for custom status codes.- Parameters:
statusCodePredicate- to match responses withexceptionFunction- to map the response to an error signal- Returns:
- this builder
- Since:
- 5.1.9
bodyToMono
<T> reactor.core.publisher.Mono<T> bodyToMono(Class<T> elementClass)
Extract the body to aMono. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- response body type- Parameters:
elementClass- the expected response body element class- Returns:
- a mono containing the body, or a
WebClientResponseExceptionif the status code is 4xx or 5xx
bodyToMono
<T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> elementTypeRef)
Extract the body to aMono. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- response body type- Parameters:
elementTypeRef- a type reference describing the expected response body element type- Returns:
- a mono containing the body, or a
WebClientResponseExceptionif the status code is 4xx or 5xx
bodyToFlux
<T> reactor.core.publisher.Flux<T> bodyToFlux(Class<T> elementClass)
Extract the body to aFlux. By default, if the response has status code 4xx or 5xx, theFluxwill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- the type of elements in the response- Parameters:
elementClass- the class of elements in the response- Returns:
- a flux containing the body, or a
WebClientResponseExceptionif the status code is 4xx or 5xx
bodyToFlux
<T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)
Extract the body to aFlux. By default, if the response has status code 4xx or 5xx, theFluxwill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- the type of elements in the response- Parameters:
elementTypeRef- a type reference describing the expected response body element type- Returns:
- a flux containing the body, or a
WebClientResponseExceptionif the status code is 4xx or 5xx
toEntity
<T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(Class<T> bodyClass)
Return the response as a delayedResponseEntity. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- response body type- Parameters:
bodyClass- the expected response body type- Returns:
Monowith theResponseEntity- Since:
- 5.2
toEntity
<T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ParameterizedTypeReference<T> bodyTypeReference)
Return the response as a delayedResponseEntity. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- response body type- Parameters:
bodyTypeReference- a type reference describing the expected response body type- Returns:
Monowith theResponseEntity- Since:
- 5.2
toEntityList
<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(Class<T> elementClass)
Return the response as a delayed list ofResponseEntitys. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- the type of elements in the list- Parameters:
elementClass- the expected response body list element class- Returns:
Monowith the list ofResponseEntitys- Since:
- 5.2
toEntityList
<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)
Return the response as a delayed list ofResponseEntitys. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function).- Type Parameters:
T- the type of elements in the list- Parameters:
elementTypeRef- the expected response body list element reference type- Returns:
Monowith the list ofResponseEntitys- Since:
- 5.2
toBodilessEntity
reactor.core.publisher.Mono<ResponseEntity<Void>> toBodilessEntity()
Return the response as a delayedResponseEntitycontaining status and headers, but no body. By default, if the response has status code 4xx or 5xx, theMonowill contain aWebClientException. This can be overridden withonStatus(Predicate, Function). Calling this method will release the body of the response.- Returns:
Monowith the bodilessResponseEntity- Since:
- 5.2