接口 WebClient.ResponseSpec

所有已知实现类:
DefaultWebClient.DefaultResponseSpec
封闭接口:
WebClient

public static interface WebClient.ResponseSpec
Contract for specifying response operations following the exchange.
  • 方法详细资料

    • onStatus

      WebClient.ResponseSpec onStatus(Predicate<HttpStatusCode> 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));
       
      参数:
      statusPredicate - to match responses with
      exceptionFunction - to map the response to an error signal
      返回:
      this builder
      另请参阅:
    • 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.
      参数:
      statusCodePredicate - to match responses with
      exceptionFunction - to map the response to an error signal
      返回:
      this builder
    • 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.
      类型参数:
      T - the target body type
      参数:
      elementClass - the type to decode to
      返回:
      the decoded body
    • bodyToMono

      <T> reactor.core.publisher.Mono<T> bodyToMono(cn.taketoday.core.ParameterizedTypeReference<T> elementTypeRef)
      Variant of bodyToMono(Class) with a ParameterizedTypeReference.
      类型参数:
      T - the target body type
      参数:
      elementTypeRef - the type to decode to
      返回:
      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.
      类型参数:
      T - the body element type
      参数:
      elementClass - the type of element to decode to
      返回:
      the decoded body
    • bodyToFlux

      <T> reactor.core.publisher.Flux<T> bodyToFlux(cn.taketoday.core.ParameterizedTypeReference<T> elementTypeRef)
      Variant of bodyToMono(Class) with a ParameterizedTypeReference.
      类型参数:
      T - the body element type
      参数:
      elementTypeRef - the type of element to decode to
      返回:
      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.
      类型参数:
      T - response body type
      参数:
      bodyClass - the expected response body type
      返回:
      the ResponseEntity with the decoded body
    • toEntity

      <T> reactor.core.publisher.Mono<ResponseEntity<T>> toEntity(cn.taketoday.core.ParameterizedTypeReference<T> bodyTypeReference)
      Variant of bodyToMono(Class) with a ParameterizedTypeReference.
      类型参数:
      T - the response body type
      参数:
      bodyTypeReference - the expected response body type
      返回:
      the ResponseEntity with the decoded body
    • 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.
      类型参数:
      T - the body element type
      参数:
      elementClass - the type of element to decode the target Flux to
      返回:
      the ResponseEntity
    • toEntityList

      <T> reactor.core.publisher.Mono<ResponseEntity<List<T>>> toEntityList(cn.taketoday.core.ParameterizedTypeReference<T> elementTypeRef)
      Variant of toEntity(Class) with a ParameterizedTypeReference.
      类型参数:
      T - the body element type
      参数:
      elementTypeRef - the type of element to decode the target Flux to
      返回:
      the ResponseEntity
    • 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.

      类型参数:
      T - the body element type
      参数:
      elementType - the type of element to decode the target Flux to
      返回:
      the ResponseEntity
    • toEntityFlux

      <T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(cn.taketoday.core.ParameterizedTypeReference<T> elementTypeReference)
      Variant of toEntityFlux(Class) with a ParameterizedTypeReference.
      类型参数:
      T - the body element type
      参数:
      elementTypeReference - the type of element to decode the target Flux to
      返回:
      the ResponseEntity
    • toEntityFlux

      <T> reactor.core.publisher.Mono<ResponseEntity<reactor.core.publisher.Flux<T>>> toEntityFlux(BodyExtractor<reactor.core.publisher.Flux<T>,? super ClientHttpResponse> bodyExtractor)
      类型参数:
      T - the body element type
      参数:
      bodyExtractor - the BodyExtractor that reads from the response
      返回:
      the ResponseEntity
    • 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.
      返回:
      the ResponseEntity