【发布时间】:2019-08-23 01:05:01
【问题描述】:
我正在尝试处理下游服务抛出的异常并捕获错误代码以及错误响应消息。在网上搜索了一些解决方案后,我看到了以下处理异常的常用方法,但我真的不确定我必须在 MyCustomConnectionException 中具体写什么?顺便说一句,当我使用 Resttemplate 时,我可以通过抛出 HttpClientResponseException 轻松处理并捕获所有内容,但这里真的不确定这是如何工作的?我是使用 Webclient 和 Spring 反应技术的新手。 有人可以帮我吗。 ?
Mono<String> result = client.get()
.uri("/api/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.onStatus(HttpStatus::is4xxClientError, response -> {
return Mono.error(new MyCustomConnectionException());
})
.bodyToMono(String.class);
【问题讨论】:
-
您不需要任何 onStatus() 调用。默认情况下,当收到错误响应时,会返回 Mono.error() 以及 WebClientResponseException 的实例。如您所见,它允许访问状态代码和响应正文
标签: spring spring-boot java-8 spring-webflux spring-webclient