状态:日常主力 · 适合移动端抓包、规则重写与前后端接口联调
速读#
在传统网络调试工作流中,抓包排查要开 Charles 或 Fiddler,修改参数发包又得切换到 Postman。两个软件来回倒腾 cURL、Headers 和 Body,上下文割裂严重。
Reqable 的核心价值在于将 「抓包分析」 与 「API 调试」 缝合在同一个工作台中。它放弃了笨重的 Electron 和老旧的 Java 运行时,采用 C++ 异步网络内核搭配 Flutter 跨平台渲染,冷启动毫秒级,内存常驻通常仅几十 MB,支持 HTTP/1.1、HTTP/2、HTTP/3 (QUIC) 以及 WebSocket 协议。
它真正帮我省掉的是什么#
1. 异常请求一键转入调试台#
在抓包列表中发现异常请求或服务端 500 时,右键直接点击「在 API 调试器中打开」。请求的 Method、Path、Query、Headers 与 Body 会被完整复刻到独立调试标签页中。直接修改参数重新发包,无需手动复制 cURL 到终端。
2. 规则重写与运行时断点#
- Rewrite(规则重写):支持基于正则的 URL 重定向、Header 动态注入、Body 局部字段替换或状态码强制覆写。前端同学无需等待后端发布,直接通过规则将线上异常 Mock 成特定的业务 JSON。
- Breakpoints(断点调试):在 Request 发出前或 Response 返回客户端前进行单步拦截与实时编辑,方便验证客户端在遇到 401 令牌过期、429 限流或 502 网关崩溃时的容错与降级表现。
3. Python 脚本动态扩展#
针对带有动态 HMAC-SHA256 签名或 AES 加密 Body 的企业级接口,Reqable 内置了 Python 脚本引擎:
# 示例:出站请求自动计算时间戳与签名def onRequest(context, request): import time, hashlib timestamp = str(int(time.time())) request.headers['X-Timestamp'] = timestamp raw = request.body.payload or b'' sign = hashlib.md5(raw + timestamp.encode()).hexdigest() request.headers['X-Sign'] = sign return request最短上手路径#
- 下载启动客户端,首次抓包按引导安装并信任本地 CA 根证书。
- 开启系统代理抓包,在浏览器中触发一次目标请求。
- 在左侧请求列表中找到目标接口,右键选择 「在 API 调试器中打开」。
- 修改请求参数并点击发送,验证服务端响应,体验抓包到调试的无缝流转。
推荐的使用边界#
- 退出必关代理:调试结束后务必在应用内停止抓包,防止异常退出导致系统残留代理设置,造成浏览器报错
ERR_PROXY_CONNECTION_FAILED。 - Android 7.0+ 证书沙箱:Android 7+ 默认不信任用户级 CA 证书。调试自研 App 时需在
network_security_config.xml中显式允许trust-anchors user,或开启 Reqable 的辅助抓包模式。 - 底层排障边界:若连接在 TCP 握手阶段被 RST 中断或 TLS 协商失败,应用层代理只会报错连接中断,此时应切到 Wireshark 抓取底层以太网报文。
不适合什么情况#
- 只需要排查底层 TCP 三次握手丢包、TLS 密码套件协商或 MTU 分片(应使用 Wireshark)。
- 需要进行高强度自动化接口模糊测试(Fuzzing)或越权漏洞渗透(应使用 Burp Suite)。
Reqable 的价值在于消除了从「抓到异常包」到「发包修参数」之间的上下文切换成本。真正的效率不是功能堆砌,而是链路无缝。
