我正在尝试使用WebClient创建一个REST调用。
我只想记录通话结果。成功时,记录带有响应主体的成功消息;在出现5XX错误、超时或其他错误时,记录错误消息。日志应在后台创建(不由创建呼叫的线程创建)。 但是
statusWebClient.post()
.uri(url)
.bodyValue(createBody(state, number))
.retrieve()
.bodyToFlux(String.class)
.doOnEach(response -> log.debug("Notification was sent to {}, response {}", url, response.get()))
.doOnError(exception -> log.warn("Failed to send notification to {}, cause {}", url, exception.getMessage()))
.subscribe();
我只想记录通话结果。成功时,记录带有响应主体的成功消息;在出现5XX错误、超时或其他错误时,记录错误消息。日志应在后台创建(不由创建呼叫的线程创建)。 但是
doOnEach
每次执行,doOnError
正常工作,但也有其他问题。reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.web.reactive.function.client.WebClientResponseException$InternalServerError: 500 Internal Server Error from POST
记录在日志文件中。
我在一些教程中也看到了onSuccess
方法,但在我的设置中没有这样的方法。
如何记录成功和失败消息?
.doOnComplete()
需要一个Runnable作为参数-没有办法获得响应。 - Mateusz