Class ClientResponseWrapper

java.lang.Object
org.springframework.web.reactive.function.client.support.ClientResponseWrapper
All Implemented Interfaces:
ClientResponse

public class ClientResponseWrapper extends Object implements ClientResponse
Implementation of the ClientResponse interface that can be subclassed to adapt the request in a exchange filter function. All methods default to calling through to the wrapped request.
Since:
5.0.5
Author:
Arjen Poutsma
  • Constructor Details

    • ClientResponseWrapper

      public ClientResponseWrapper(ClientResponse delegate)
      Create a new ClientResponseWrapper that wraps the given response.
      Parameters:
      delegate - the response to wrap
  • Method Details

    • response

      public ClientResponse response()
      Return the wrapped request.
    • strategies

      public ExchangeStrategies strategies()
      Description copied from interface: ClientResponse
      Return the strategies used to convert the body of this response.
      Specified by:
      strategies in interface ClientResponse
    • statusCode

      public HttpStatus statusCode()
      Description copied from interface: ClientResponse
      Return the HTTP status code as an HttpStatus enum value.
      Specified by:
      statusCode in interface ClientResponse
      Returns:
      the HTTP status as an HttpStatus enum value (never null)
      See Also:
    • rawStatusCode

      public int rawStatusCode()
      Description copied from interface: ClientResponse
      Return the (potentially non-standard) status code of this response.
      Specified by:
      rawStatusCode in interface ClientResponse
      Returns:
      the HTTP status as an integer value
      See Also:
    • headers

      public ClientResponse.Headers headers()
      Description copied from interface: ClientResponse
      Return the headers of this response.
      Specified by:
      headers in interface ClientResponse
    • cookies

      public MultiValueMap<String,ResponseCookie> cookies()
      Description copied from interface: ClientResponse
      Return the cookies of this response.
      Specified by:
      cookies in interface ClientResponse
    • body

      public <T> T body(BodyExtractor<T,? super ClientHttpResponse> extractor)
      Description copied from interface: ClientResponse
      Extract the body with the given BodyExtractor.
      Specified by:
      body in interface ClientResponse
      Type Parameters:
      T - the type of the body returned
      Parameters:
      extractor - the BodyExtractor that reads from the response
      Returns:
      the extracted body
    • bodyToMono

      public <T> reactor.core.publisher.Mono<T> bodyToMono(Class<? extends T> elementClass)
      Description copied from interface: ClientResponse
      Extract the body to a Mono.
      Specified by:
      bodyToMono in interface ClientResponse
      Type Parameters:
      T - the element type
      Parameters:
      elementClass - the class of element in the Mono
      Returns:
      a mono containing the body of the given type T
    • bodyToMono

      public <T> reactor.core.publisher.Mono<T> bodyToMono(ParameterizedTypeReference<T> elementTypeRef)
      Description copied from interface: ClientResponse
      Extract the body to a Mono.
      Specified by:
      bodyToMono in interface ClientResponse
      Type Parameters:
      T - the element type
      Parameters:
      elementTypeRef - the type reference of element in the Mono
      Returns:
      a mono containing the body of the given type T
    • bodyToFlux

      public <T> reactor.core.publisher.Flux<T> bodyToFlux(Class<? extends T> elementClass)
      Description copied from interface: ClientResponse
      Extract the body to a Flux.
      Specified by:
      bodyToFlux in interface ClientResponse
      Type Parameters:
      T - the element type
      Parameters:
      elementClass - the class of elements in the Flux
      Returns:
      a flux containing the body of the given type T
    • bodyToFlux

      public <T> reactor.core.publisher.Flux<T> bodyToFlux(ParameterizedTypeReference<T> elementTypeRef)
      Description copied from interface: ClientResponse
      Extract the body to a Flux.
      Specified by:
      bodyToFlux in interface ClientResponse
      Type Parameters:
      T - the element type
      Parameters:
      elementTypeRef - the type reference of elements in the Flux
      Returns:
      a flux containing the body of the given type T
    • releaseBody

      public reactor.core.publisher.Mono<Void> releaseBody()
      Description copied from interface: ClientResponse
      Release the body of this response.
      Specified by:
      releaseBody in interface ClientResponse
      Returns:
      a completion signal
      See Also:
    • toBodilessEntity

      public reactor.core.publisher.Mono<ResponseEntity<Void>> toBodilessEntity()
      Description copied from interface: ClientResponse
      Return this response as a delayed ResponseEntity containing status and headers, but no body. Calling this method will release the body of the response.
      Specified by:
      toBodilessEntity in interface ClientResponse
      Returns:
      Mono with the bodiless ResponseEntity
    • toEntity

      public <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(Class<T> bodyType)
      Description copied from interface: ClientResponse
      Return this response as a delayed ResponseEntity.
      Specified by:
      toEntity in interface ClientResponse
      Type Parameters:
      T - response body type
      Parameters:
      bodyType - the expected response body type
      Returns:
      Mono with the ResponseEntity
    • toEntity

      public <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(ParameterizedTypeReference<T> bodyTypeReference)
      Description copied from interface: ClientResponse
      Return this response as a delayed ResponseEntity.
      Specified by:
      toEntity in interface ClientResponse
      Type Parameters:
      T - response body type
      Parameters:
      bodyTypeReference - a type reference describing the expected response body type
      Returns:
      Mono with the ResponseEntity
    • toEntityList

      public <T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(Class<T> elementClass)
      Description copied from interface: ClientResponse
      Return this response as a delayed list of ResponseEntitys.
      Specified by:
      toEntityList in interface ClientResponse
      Type Parameters:
      T - the type of elements in the list
      Parameters:
      elementClass - the expected response body list element class
      Returns:
      Mono with the list of ResponseEntitys
    • toEntityList

      public <T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(ParameterizedTypeReference<T> elementTypeRef)
      Description copied from interface: ClientResponse
      Return this response as a delayed list of ResponseEntitys.
      Specified by:
      toEntityList in interface ClientResponse
      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 of ResponseEntitys
    • createException

      public reactor.core.publisher.Mono<WebClientResponseException> createException()
      Description copied from interface: ClientResponse
      Create a WebClientResponseException that contains the response status, headers, body, and the originating request.
      Specified by:
      createException in interface ClientResponse
      Returns:
      a Mono with the created exception
    • createError

      public <T> reactor.core.publisher.Mono<T> createError()
      Description copied from interface: ClientResponse
      Create a Mono that terminates with a WebClientResponseException, containing the response status, headers, body, and the originating request.
      Specified by:
      createError in interface ClientResponse
      Type Parameters:
      T - the reified type
      Returns:
      a Mono that fails with a WebClientResponseException.
      See Also:
    • logPrefix

      public String logPrefix()
      Description copied from interface: ClientResponse
      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 "]".

      Specified by:
      logPrefix in interface ClientResponse
      Returns:
      the log message prefix or an empty String if the LOG_ID_ATTRIBUTE is not set