Roh*_*ngh 13 spring-boot spring-webflux spring-webclient
我是 Spring WebClient 的新手,我编写了一个通用方法,可用于在我的应用程序中使用 REST API:
public <T> List<T> get(URI url, Class<T> responseType) {
return WebClient.builder().build().get().uri(url)
.header("Authorization", "Basic " + principal)
.retrieve().bodyToFlux(responseType).collectList().block();
}
Run Code Online (Sandbox Code Playgroud)
如果消耗了rest-api返回404,我想返回并清空列表。
有人可以建议如何实现这一目标吗?
默认情况下,检索方法会针对任何 4xx 和 5xx 错误抛出 WebClientResponseException 异常
默认情况下,4xx 和 5xx 响应会导致 WebClientResponseException。
您可以使用onErrorResume
webClient.get()
.uri(url)
.retrieve()
.header("Authorization", "Basic " + principal)
.bodyToFlux(Account.class)
.onErrorResume(WebClientResponseException.class,
ex -> ex.getRawStatusCode() == 404 ? Flux.empty() : Mono.error(ex))
.collectList().block();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17217 次 |
最近记录: |