Spring Webflux Reactor Netty:HTTP 请求/响应十六进制转储?

Dac*_*ein 3 reactor-netty spring-webflux

我们必须在 application.properties 中设置什么日志级别,以便在 reactor-netty 的控制台中查看带有标头和正文的完整 HTTP 请求和响应作为十六进制转储

logging.level.reactor.netty=trace
Run Code Online (Sandbox Code Playgroud)

仅显示响应 http 标头。

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
Run Code Online (Sandbox Code Playgroud)

Vio*_*eva 6

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

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