Spring Webflux Reactor Netty:HTTP Request/Response 十六进制转储?

Spring Webflux Reactor Netty: HTTP Request/Response Hex Dump?

我们必须在 application.properties 中设置什么日志级别才能看到完整的 HTTP 请求和响应 headers 和 body 作为 hex 转储 在控制台中来自 reactor-netty?

logging.level.reactor.netty=trace

只显示响应 http headers。

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 248
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1 ; mode=block
Referrer-Policy: no-referrer

将日志记录级别保持为 DEBUG 或 TRACE 并按照以下说明进行操作:

  1. 如果您想查看服务器的 hex dump,那么您可以像这样自定义它:
@Component
public class MyNettyWebServerCustomizer
        implements WebServerFactoryCustomizer<NettyReactiveWebServerFactory> {
    @Override
    public void customize(NettyReactiveWebServerFactory factory) {
        factory.addServerCustomizers(httpServer -> httpServer.wiretap(true));
    }
}
  1. 如果你想看到客户端的 hex dump 那么你可以像这样自定义它:
WebClient.builder()
        .clientConnector(new ReactorClientHttpConnector(HttpClient.create().wiretap(true)))
        .build();