如何记录 Spring WebClient 响应
Posted
技术标签:
【中文标题】如何记录 Spring WebClient 响应【英文标题】:How to log Spring WebClient response 【发布时间】:2018-10-17 08:52:30 【问题描述】:我是 Spring WebClient 的新手。有人可以建议从另一个 Web 服务记录 REST 请求和响应的最佳方式吗?
我已经在问题中看到了一个记录请求的示例,但还必须记录响应和对 POST 调用的请求。 how to log Spring 5 WebClient call
谢谢。
【问题讨论】:
目前还没有找到比直接解码成字符串,记录日志,然后反序列化更好的方法 【参考方案1】:一种选择是使用onStatus
函数。好处是你可以对不同的状态码做出不同的反应:
.onStatus(HttpStatus::is4xxClientError, res ->
res.toEntity(String.class).subscribe(
entity -> log.warn("Client error ", entity)
);
return Mono.error(new HttpClientErrorException(res.statusCode()));
)
但请注意,这将异步记录,这意味着它可能会在您已经记录不同的内容之后记录。我现在正在使用这种方式,但我知道它并不完美,所以我很乐意看到更好的建议。
【讨论】:
以上是关于如何记录 Spring WebClient 响应的主要内容,如果未能解决你的问题,请参考以下文章