java - 如何在 Netty 客户端中漂亮地打印 http 正文?
问题描述
如果我启用调试日志并使用以下配置,我将在控制台中获得某种十六进制转储:
HttpClient.create().wiretap(true);
显示:
+-------------------------------------------------+
| 0 1 2 3 4 5 6 7 8 9 a b c d e f |
+--------+-------------------------------------------------+----------------+
|00000000| 49 70 73 6f 20 66 61 63 74 6f 20 69 73 20 61 20 |Ipso facto is a |
|00000010| 4c 61 74 69 6e 20 70 68 72 61 73 65 2c 20 64 69 |Latin phrase, di|
|00000020| 72 65 63 74 6c 79 20 74 72 61 6e 73 6c 61 74 65 |rectly translate|
|00000030| 64 20 61 73 20 22 62 79 20 74 68 65 20 66 61 63 |d as "by the fac|
|00000040| 74 20 69 74 73 65 6c 66 22 2c 5b 31 5d 20 77 68 |t itself",[1] wh|
|00000050| 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 61 |ich means that a|
|00000060| 20 73 70 65 63 69 66 69 63 20 70 68 65 6e 6f 6d | specific phenom|
|00000070| 65 6e 6f 6e 20 69 73 20 61 20 64 69 72 65 63 74 |enon is a direct|
|00000080| 20 63 6f 6e 73 65 71 75 65 6e 63 65 2c 20 61 20 | consequence, a |
|00000090| 72 65 73 75 6c 74 61 6e 74 20 65 66 66 65 63 74 |resultant effect|
问题:我如何告诉 netty 将十六进制转储转换为纯字符串(例如,以便我只能看到真正的 json 输出)?
尤其是消息体是压缩的,我想将其记录为未压缩的。但是怎么做?
解决方案
HttpClient httpClient = HttpClient
.create()
.wiretap("reactor.netty.http.client.HttpClient",
LogLevel.DEBUG, AdvancedByteBufFormat.TEXTUAL);
这应该只给你你需要的文本
推荐阅读
- eclipse - 在 Eclipse 控制台视图中,哪些键将焦点移动到按钮行?
- fancybox - 无法让 clickoutside 在 Fancybox 中工作
- gradle - 将 gradle shadow 与 Kotlin 多平台一起使用
- java - 单击内部区域时删除形状
- php - Laravel 在生产服务器 ( Forge ) 上为模型 id 返回 0
- angular - Angular 6 html中的条件包装
- python - 如果我们已经导入了 urllib 和 urllib3,是否需要导入 requests lib 才能使用 requests?- urllibx,请求混淆
- javascript - OverlayScrollbars 插件引导模态问题
- python - 这个毕达哥拉斯三元组函数的复杂度是多少?
- reactjs - 为什么我的 React 表单提交值未定义?