如何记录 Spring WebClient 响应

How to log Spring WebClient response

我是 Spring WebClient 的新手。有人可以建议记录来自另一个网络服务的 REST 请求和响应的最佳方法吗?

我已经在问题中看到了记录请求的示例,但还必须记录对 POST 调用的响应和请求。

谢谢。

一种选择是使用 onStatus 函数。优点是您可以对不同的状态代码做出不同的反应:

.onStatus(HttpStatus::is4xxClientError, res -> {
  res.toEntity(String.class).subscribe(
    entity -> log.warn("Client error {}", entity)
   );
   return Mono.error(new HttpClientErrorException(res.statusCode()));}
 )

但请注意,这将异步记录,这意味着它可能会在您已经记录了不同的内容之后记录。我现在正在使用这种方式,但我知道它并不完美,所以我很乐意看到更好的建议。