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

时间:2019-03-21 07:14:31

标签: spring-webflux reactor-netty

我们必须在application.properties中设置什么日志级别,以便在反应堆网络控制台中以 hex dump 的形式查看带有头和正文的完整HTTP请求和响应?

logging.level.reactor.netty=trace

仅显示响应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

1 个答案:

答案 0 :(得分:3)

保持日志记录级别为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();