org.springframework.web.reactive.function.client

## 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 and Description
    --- | ---
    `<T> reactor.core.publisher.Flux<T>` | `bodyToFlux(Class<T> elementClass)` Decode the body to a `Flux` with elements of the given type.
    `<T> reactor.core.publisher.Flux<T>` | `bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)` Variant of `bodyToMono(Class)` with a `ParameterizedTypeReference`.
    `<T> reactor.core.publisher.Mono<T>` | `bodyToMono(Class<T> elementClass)` Decode the body to the given target type.
    `<T> reactor.core.publisher.Mono<T>` | `bodyToMono(ParameterizedTypeReference<T> elementTypeRef)` Variant of `bodyToMono(Class)` with a `ParameterizedTypeReference`.
    `WebClient.ResponseSpec` | `onRawStatus(IntPredicate statusCodePredicate, Function<ClientResponse,reactor.core.publisher.Mono<? extends Throwable>> exceptionFunction)` Variant of `onStatus(Predicate, Function)` that works with raw status code values.
    `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.
    `reactor.core.publisher.Mono<ResponseEntity<Void>>` | `toBodilessEntity()` Return a `ResponseEntity` without a body.
    `<T> reactor.core.publisher.Mono<ResponseEntity<T>>` | `toEntity(Class<T> bodyClass)` Return a `ResponseEntity` with the body decoded to an Object of the given type.
    `<T> reactor.core.publisher.Mono<ResponseEntity<T>>` | `toEntity(ParameterizedTypeReference<T> bodyTypeReference)` Variant of `bodyToMono(Class)` with a `ParameterizedTypeReference`.
    `<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>>` | `toEntityFlux(BodyExtractor<reactor.core.publisher.Flux<T>,? super ClientHttpResponse> bodyExtractor)` Variant of `toEntityFlux(Class)` with a `BodyExtractor`.
    `<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>>` | `toEntityFlux(Class<T> elementType)` Return a `ResponseEntity` with the body decoded to a `Flux` of elements of the given type.
    `<T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>>` | `toEntityFlux(ParameterizedTypeReference<T> elementTypeReference)` Variant of `toEntityFlux(Class)` with a `ParameterizedTypeReference`.
    `<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>>` | `toEntityList(Class<T> elementClass)` Return a `ResponseEntity` with the body decoded to a `List` of elements of the given type.
    `<T> reactor.core.publisher.Mono<ResponseEntity<List<T>>>` | `toEntityList(ParameterizedTypeReference<T> elementTypeRef)` Variant of `toEntity(Class)` with a `ParameterizedTypeReference`.

- - ### 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 `WebClientResponseException` which is created with `ClientResponse.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 add `onErrorResume` downstream, 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 with
        `exceptionFunction` - 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 of `onStatus(Predicate, Function)` that works with raw status code values. This is useful for custom status codes.
      Parameters:
        `statusCodePredicate` - to match responses with
        `exceptionFunction` - 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)

      Decode the body to the given target type. For an error response (status code of 4xx or 5xx), the `Mono` emits a `WebClientException`. Use `onStatus(Predicate, Function)` to customize error response handling.
      Type Parameters:
        `T` - the target body type
      Parameters:
        `elementClass` - the type to decode to
      Returns:
        the decoded body

    - #### bodyToMono

          <T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> elementTypeRef)

      Variant of `bodyToMono(Class)` with a `ParameterizedTypeReference`.
      Type Parameters:
        `T` - the target body type
      Parameters:
        `elementTypeRef` - the type to decode to
      Returns:
        the decoded body

    - #### bodyToFlux

          <T> reactor.core.publisher.Flux<T> bodyToFlux(Class<T> elementClass)

      Decode the body to a `Flux` with elements of the given type. For an error response (status code of 4xx or 5xx), the `Mono` emits a `WebClientException`. Use `onStatus(Predicate, Function)` to customize error response handling.
      Type Parameters:
        `T` - the body element type
      Parameters:
        `elementClass` - the type of element to decode to
      Returns:
        the decoded body

    - #### bodyToFlux

          <T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)

      Variant of `bodyToMono(Class)` with a `ParameterizedTypeReference`.
      Type Parameters:
        `T` - the body element type
      Parameters:
        `elementTypeRef` - the type of element to decode to
      Returns:
        the decoded body

    - #### toEntity

          <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(Class<T> bodyClass)

      Return a `ResponseEntity` with the body decoded to an Object of the given type. For an error response (status code of 4xx or 5xx), the `Mono` emits a `WebClientException`. Use `onStatus(Predicate, Function)` to customize error response handling.
      Type Parameters:
        `T` - response body type
      Parameters:
        `bodyClass` - the expected response body type
      Returns:
        the `ResponseEntity` with the decoded body
      Since:
        5.2

    - #### toEntity

          <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ParameterizedTypeReference<T> bodyTypeReference)

      Variant of `bodyToMono(Class)` with a `ParameterizedTypeReference`.
      Type Parameters:
        `T` - the response body type
      Parameters:
        `bodyTypeReference` - the expected response body type
      Returns:
        the `ResponseEntity` with the decoded body
      Since:
        5.2

    - #### toEntityList

          <T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(Class<T> elementClass)

      Return a `ResponseEntity` with the body decoded to a `List` of elements of the given type. For an error response (status code of 4xx or 5xx), the `Mono` emits a `WebClientException`. Use `onStatus(Predicate, Function)` to customize error response handling.
      Type Parameters:
        `T` - the body element type
      Parameters:
        `elementClass` - the type of element to decode the target Flux to
      Returns:
        the `ResponseEntity`
      Since:
        5.2

    - #### toEntityList

          <T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)

      Variant of `toEntity(Class)` with a `ParameterizedTypeReference`.
      Type Parameters:
        `T` - the body element type
      Parameters:
        `elementTypeRef` - the type of element to decode the target Flux to
      Returns:
        the `ResponseEntity`
      Since:
        5.2

    - #### toEntityFlux

          <T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(Class<T> elementType)

      Return a `ResponseEntity` with the body decoded to a `Flux` of elements of the given type. For an error response (status code of 4xx or 5xx), the `Mono` emits a `WebClientException`. Use `onStatus(Predicate, Function)` to customize error response handling.

      Note: The `Flux` representing the body must be subscribed to or else associated resources will not be released.

      Type Parameters:
        `T` - the body element type
      Parameters:
        `elementType` - the type of element to decode the target Flux to
      Returns:
        the `ResponseEntity`
      Since:
        5.3.1

    - #### toEntityFlux

          <T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(ParameterizedTypeReference<T> elementTypeReference)

      Variant of `toEntityFlux(Class)` with a `ParameterizedTypeReference`.
      Type Parameters:
        `T` - the body element type
      Parameters:
        `elementTypeReference` - the type of element to decode the target Flux to
      Returns:
        the `ResponseEntity`
      Since:
        5.3.1

    - #### toEntityFlux

          <T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(BodyExtractor<reactor.core.publisher.Flux<T>,? super ClientHttpResponse> bodyExtractor)

      Variant of `toEntityFlux(Class)` with a `BodyExtractor`.
      Type Parameters:
        `T` - the body element type
      Parameters:
        `bodyExtractor` - the `BodyExtractor` that reads from the response
      Returns:
        the `ResponseEntity`
      Since:
        5.3.2

    - #### toBodilessEntity

          reactor.core.publisher.Mono<ResponseEntity<Void>> toBodilessEntity()

      Return a `ResponseEntity` without a body. For an error response (status code of 4xx or 5xx), the `Mono` emits a `WebClientException`. Use `onStatus(Predicate, Function)` to customize error response handling.
      Returns:
        the `ResponseEntity`
      Since:
        5.2