请求重放:把历史请求重新发送
什么时候需要重放
调试过程中经常遇到这种情况:你抓包发现某个请求的参数不对,但 App 的操作流程很复杂——要经过好几个页面、点好几个按钮才能再次触发这个接口。请求重放让你直接把历史请求重新发一次,跳过所有前置操作。
单次重放
入口
在请求详情页的右上角「更多」菜单中,找到「重放」选项。或者在请求列表中长按条目,在弹出菜单中选择「重放」。
效果
httpCanary 会把这条请求 完整地重新发送一次——包括原始的 URL、方法、Headers、Body 全部原样复制,发送到同一个目标服务器。
注意事项
- Cookie/Token 可能已过期——重放用的是当时抓到的 Cookie 和 Token,如果时间长了这些凭证失效,服务器可能返回 401/403。这是正常的,不是重放功能有问题。
- 有副作用的请求谨慎重放——比如创建订单、发送消息、付款等请求,重放会真的再次执行,可能产生重复数据。建议先复制一条出来重放,或者用静态注入改个唯一标识再发。
- POST 请求的 Body 会完整重发——不像浏览器刷新表单会提示,httpCanary 会直接发。
编辑重发
和单次重放类似,但发送前可以先修改请求内容:
- 在详情页 → 更多菜单 → 编辑重发
- 在编辑界面修改 URL、Headers、Body 等
- 确认发送
这比先配静态注入再重发更灵活——临时改个参数试一下,不用创建持久化的规则。
批量重发
如果需要把多条请求一起重发(比如模拟一次完整的业务流程):
- 在请求列表中进入多选模式
- 勾选要重放的多条请求
- 在批量操作菜单中选择「批量重发」
批量重发会按照原始抓到的顺序依次发送。
重放的高级用法
场景一:快速验证接口改动
服务端刚改了一个接口逻辑,你想快速验证。不用重新走 App 的操作流程,直接用之前抓到的那条请求重放一次,看看新逻辑的效果。
场景二:构造压力测试
批量重发同一个请求多次,简单模拟一下并发压力——虽然不能替代专业压测工具,但足够用来快速观察接口在多请求下的表现。
场景三:测试重放保护
反重放(Replay Attack Protection)是安全测试的重要内容。用重放功能看看服务器会不会拒绝已经发送过的请求——如果不会,说明接口没有重放保护。
重放 vs 注入
| 需求 | 用什么 |
|---|---|
| 原样重发历史请求 | 单次重放 |
| 改个参数再发 | 编辑重发或静态注入 + 重放 |
| 每次都改同样的东西自动发 | 静态注入(自动生效) |
| 手动选哪些请求发 | 批量重发 |