我正在使用Spring WebFlux中的WebClient,代码如下:
WebClient.create()
.post()
.uri(url)
.syncBody(body)
.accept(MediaType.APPLICATION_JSON)
.headers(headers)
.exchange()
.flatMap(clientResponse -> clientResponse.bodyToMono(tClass));
它运作良好。我现在想处理我调用的Web服务的错误(例如500内部错误)。通常情况下,我会在“stream”上添加一个“doOnError”并使用Throwable来测试状态码。
但我的问题是,我想获取Web服务提供的正文,因为它提供了我想使用的消息。
我希望无论发生什么都能够执行flatMap,并测试自己的状态码以序列化或不序列化正文。
WebClient
收到了一个错误响应(422),错误响应中有一个具有某些JSON内容的错误代码的主体,我需要检索它。我在这里找不到任何帮助(尽管可能是因为我不够理解?),但是我发现确实从这个教程中得到了帮助: https://medium.com/nerd-for-tech/webclient-error-handling-made-easy-4062dcf58c49 - Bill Naylor