跳到正文
Reqable:抓包直接转接口调试,把 Charles 和 Postman 并在同一个工作区

Reqable:抓包直接转接口调试,把 Charles 和 Postman 并在同一个工作区

基于 Flutter 与高性能 C++ 内核构建的跨平台抓包与 API 调试工作台。捕获流量可一键转入调试台修补重发,支持规则重写、运行时断点与 Python 脚本扩展。前后端联调不再需要在多个软件间倒腾 cURL。

Reqable:抓包直接转接口调试,把 Charles 和 Postman 并在同一个工作区

状态:日常主力 · 适合移动端抓包、规则重写与前后端接口联调

速读#

在传统网络调试工作流中,抓包排查要开 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

最短上手路径#

  1. 下载启动客户端,首次抓包按引导安装并信任本地 CA 根证书。
  2. 开启系统代理抓包,在浏览器中触发一次目标请求。
  3. 在左侧请求列表中找到目标接口,右键选择 「在 API 调试器中打开」
  4. 修改请求参数并点击发送,验证服务端响应,体验抓包到调试的无缝流转。

推荐的使用边界#

  1. 退出必关代理:调试结束后务必在应用内停止抓包,防止异常退出导致系统残留代理设置,造成浏览器报错 ERR_PROXY_CONNECTION_FAILED
  2. Android 7.0+ 证书沙箱:Android 7+ 默认不信任用户级 CA 证书。调试自研 App 时需在 network_security_config.xml 中显式允许 trust-anchors user,或开启 Reqable 的辅助抓包模式。
  3. 底层排障边界:若连接在 TCP 握手阶段被 RST 中断或 TLS 协商失败,应用层代理只会报错连接中断,此时应切到 Wireshark 抓取底层以太网报文。

不适合什么情况#

  • 只需要排查底层 TCP 三次握手丢包、TLS 密码套件协商或 MTU 分片(应使用 Wireshark)。
  • 需要进行高强度自动化接口模糊测试(Fuzzing)或越权漏洞渗透(应使用 Burp Suite)。

Reqable 的价值在于消除了从「抓到异常包」到「发包修参数」之间的上下文切换成本。真正的效率不是功能堆砌,而是链路无缝。

s1oopX

登录 s1oopX