reqable-app
reqable-app copied to clipboard
[bug] 支持配置zlib非默认压缩参数
Describe the bug 读取zlib压缩过的请求体时出现错误 FormatException: Filter error, bad data 同时也无法使用导出功能导出请求体 只能使用导出->请求体(原始)获取hex数据 很抱歉因为数据安全问题无法提供测试用例 只能提供请求头(未提供的请求头则为不存在 如Accept-Encoding)
Content-Type: application/json
User-Agent: xxx
charset: UTF-8
Content-Encoding: deflate
Content-Length: 43
Expect: 100-continue
To Reproduce Steps to reproduce the behavior: 调试界面开始获取网络流量 被调试app发送zlib压缩过的请求 出现错误
Expected behavior 正确显示请求体
Screenshots
Information
- Platform: windows
- OS: 11
- Arch: x86-64
- App Version: 2.4.0 (65)
@Haocen2004 感谢反馈,能复现,将在下个版本修复。
@Haocen2004 v2.4.1版本已修复。
@MegatronKing raw的zlib deflate body同样出现FormatException: Filter error, bad data错误 希望能提供选项设置deflate的window size
Doc of zlib for more detail about window size: https://www.zlib.net/manual.html#Advanced
@freezewind 请问有具体的例子吗?我测试复现下看看。
Platform: Android 13
App Version: 2.15.0
这是我复现的例子 12_res_raw.txt 用reqable发request到别的机械的伺服器 在REST API request setting的proxy设置为Traffic 在REST API里能正常看到response body 但Traffic的response body出现FormatException: Filter error, bad data @MegatronKing
@freezewind 你好,我需要更多的信息来处理这个问题。正常情况下,客户端和服务器一般都是采用默认的压缩参数,默认参数我测试也是没有问题的。你遇到的这个问题,是否是客户端和服务端协商好了非默认的压缩参数?那么是如何协商的,客户端和服务端私下分别写死吗?
@MegatronKing 你好,客户端和服务端都是私下分别直接写死用非默认的压缩参数的。 如果不方便自动处理的话,希望能有压缩参数设置。
@MegatronKing 你好,请问这问题能不能处理吗?现在每次都要导出raw body处理,十分麻烦。 还有出现error的body只能从android端导出,不能从协同使用中的Windows端导出。 如果这问题还需要时间处理,能不能先允许从协同使用中的Windows端导出?
如果希望用户自己配置,必然要做一个UI设置界面。而zlib有不少参数,例如level,windowBits,strategy等,测试也需要不少时间。考虑到私下协商参数这个需求很小众,roi非常低,所以这个功能优先级不会很高。
对于临时的解决方案,你可以挂个python脚本,用自定义zlib参数解压后设置给响应体,然后正常在reqable中查看。
def onResponse(context, response):
response.headers.remove('content-encoding')
# 自定义参数解压
decompressed = zlib.decompress(response.body.payload)
# 将解压的数据替换给响应体
response.body.text(decompressed)
# Done
return response
Reqable的脚本功能请参考:https://reqable.com/zh-CN/docs/capture/script
明白的,开发ui需时。 没发现到脚本功能,感谢提供临时解决方案。