我使用webflux Mono(在Spring boot 5中)使用外部API.当API响应状态代码为200时,我能够很好地获取数据,但是当API返回错误时,我无法从API检索错误消息. Spring webclient错误处理程序始终将消息显示为
ClientResponse有错误的状态代码:500内部服务器错误,但是当我使用PostMan时,API会返回状态代码为500的JSON响应.
{
"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);
});
最佳答案
查看.onErrorMap(),它为您提供了查看的异常.因为您可能还需要查看exchange()的body(),所以不要使用retrieve,而是
.exchange().flatMap((ClientResponse) response -> ....);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。