跳到主要内容
版本:7.0.3

retrieve()

Hunyuan 7b 中英对照 retrieve() retrieve()

retrieve()方法可以用来声明如何提取响应。例如:

WebClient client = WebClient.create("https://example.org");

Mono<ResponseEntity<Person>> result = client.get()
.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.toEntity(Person.class);

或者只获取正文:

WebClient client = WebClient.create("https://example.org");

Mono<Person> result = client.get()
.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Person.class);

要获取一系列解码后的对象:

Flux<Quote> result = client.get()
.uri("/quotes").accept(MediaType.TEXT_EVENT_STREAM)
.retrieve()
.bodyToFlux(Quote.class);

默认情况下,4xx或5xx响应会导致WebClientResponseException的抛出,其中也包括针对特定HTTP状态码的子类。要自定义错误响应的处理方式,请按以下方式使用onStatus处理器:

Mono<Person> result = client.get()
.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.onStatus(HttpStatusCode::is4xxClientError, response -> ...)
.onStatus(HttpStatusCode::is5xxServerError, response -> ...)
.bodyToMono(Person.class);