我正在使用springwebclient调用restapi。我想根据响应抛出一个错误。例如,如果body有一个错误(400)
{"error": "error message1 "}
然后我想抛出一个带有“error message1”的错误。如果主体出现错误(400),方法相同
{"error_code": "100020"}
然后我想用error\u cde 100020抛出一个错误。我想以一种非阻塞的方式来做。
public Mono<Response> webclient1(...) {
webClient.post().uri(createUserUri).header(CONTENT_TYPE, APPLICATION_JSON)
.body(Mono.just(request), Request.class).retrieve()
.onStatus(HttpStatus::isError, clientResponse -> {
//Error Handling
}).bodyToMono(Response.class);
}
1条答案
按热度按时间xurqigkl1#
clientresponse中的主体应该以React方式(javadoc)提取,lambda应该在
onStatus
方法应返回另一个Mono
(javadoc)。综上所述,看看下面的例子