【发布时间】:2018-09-04 05:56:15
【问题描述】:
我正在使用 webflux Mono(在 Spring Boot 5 中)来使用外部 API。当 API 响应状态码为 200 时,我能够很好地获取数据,但是当 API 返回错误时,我无法从 API 中检索错误消息。 Spring webclient 错误处理程序始终将消息显示为
ClientResponse has erroneous status code: 500 Internal Server Error,但是当我使用 PostMan 时,API 返回此 JSON 响应,状态码为 500。
{
"error": {
"statusCode": 500,
"name": "Error",
"message":"Failed to add object with ID:900 as the object exists",
"stack":"some long message"
}
}
我使用WebClient的请求如下
webClient.getWebClient()
.post()
.uri("/api/Card")
.body(BodyInserters.fromObject(cardObject))
.retrieve()
.bodyToMono(String.class)
.doOnSuccess( args -> {
System.out.println(args.toString());
})
.doOnError( e ->{
e.printStackTrace();
System.out.println("Some Error Happend :"+e);
});
我的问题是,当 API 返回状态码为 500 的错误时,我如何才能访问 JSON 响应?
【问题讨论】:
标签: spring spring-boot spring-webflux web-client