spring-webflux - Spring Webflux Reactor Netty:HTTP 请求/响应十六进制转储?
问题描述
我们必须在 application.properties 中设置什么日志级别才能在控制台中从 reactor-netty看到完整的 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
解决方案
将日志记录级别保持为 DEBUG 或 TRACE 并按照以下说明进行操作:
- 如果您想查看
hex dump
服务器的,那么您可以像这样自定义它:
@Component
public class MyNettyWebServerCustomizer
implements WebServerFactoryCustomizer<NettyReactiveWebServerFactory> {
@Override
public void customize(NettyReactiveWebServerFactory factory) {
factory.addServerCustomizers(httpServer -> httpServer.wiretap(true));
}
}
- 如果您想查看
hex dump
客户端的,那么您可以像这样自定义它:
WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(HttpClient.create().wiretap(true)))
.build();
推荐阅读
- excel - 在 Excel 中,当列号是函数的结果并且结果不同时,如何复制列?
- python - np.tile 的 Numba 兼容实现?
- c++ - Fizz Buzz:理想的解决方案
- artifactory - Jfrog X射线证书问题
- python - 如何在字典的帮助下重新组织列表
- python - prettify 适用于 Soup 但不适用于 Soup1=Soup.find_all
- windows - 如何执行包含空格的 .exe 文件
- delphi - 如何在不显示或打印的情况下执行 TQuickRep(快速报告)?
- python - 如何调试python应用程序中的内存泄漏
- c - 为什么我必须使用双指针而不是单指针来将新值推送到 C 中的链表?