如何记录Spring WebClient的响应

3

我对Spring WebClient还比较陌生。请问有什么好的方法可以记录来自另一个Web服务的REST请求和响应?

我已经看到了一个关于在问题中记录请求的示例,但是我还需要记录POST调用的响应和请求。 如何记录Spring 5 WebClient调用

谢谢。


到目前为止,我还没有找到比将其解码为字符串、记录日志,然后反序列化更好的方法。 - ddzz
1个回答

4

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

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

但请注意,这种方式是异步记录日志的,这意味着它可能会在您记录其他内容之后才记录。我目前正在使用这种方式,但我知道它并不完美,所以我很乐意听到更好的建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接