httpCanary 中文文档 下载 App

动态注入:实时拦截手动改包

动态注入 vs 静态注入

动态注入和静态注入的核心区别是 时机:

动态注入适合那种「我想看看这个请求到底发了什么,然后再决定改不改」的场景。

使用步骤

第一步:启动抓包

确保 httpCanary 正在抓包(纸飞机是红色的)。

第二步:开启动态注入

进入设置 → 注入器 → 找到「动态注入」开关并打开。开启后,动态注入面板会常驻在悬浮窗上或主界面中。

第三步:触发目标请求

在目标 App 中进行操作,触发你想拦截的那个网络请求。

第四步:请求被拦截

当目标请求到达时,动态注入会 暂停 这个请求——它不会被发送到服务器,而是停在 httpCanary 等待你的操作。

第五步:查看和修改

在动态注入界面中,你可以:

  1. 完整查看被拦截的请求(URL、Method、Headers、Body 都在)
  2. 修改任何你想改的字段——请求参数、Header、Body,全部可编辑
  3. 决定接下来怎么处理

第六步:放行或丢弃

修改完成后,三个选项:

动态注入的特点

只能同时拦截一个请求

和静态注入可以多个注入器并存不同,动态注入 同一时刻只能处理一个请求。如果同时有多个请求到来,后面的会排队等待前一个处理完。

不适合大体积数据

如果请求体或响应体很大(比如大文件上传下载),动态注入可能会超时——因为你手动处理需要时间,而网络连接有超时限制。大体积的场景用静态注入更合适。

需要快速操作

请求被拦截后,客户端那边的连接在等待。如果你改得太慢,客户端可能会超时自动放弃。建议提前想好要改什么,拦截后快速下手。

动态注入 vs 断点

动态注入和断点功能非常相似——都是拦截 + 查看 + 修改 + 放行。主要区别:

对比项动态注入断点
触发方式设置里手动开启设置里配置断点规则自动触发
匹配方式手动控制什么时候开启预设条件自动匹配
典型场景临时拦截当前正在操作的请求精确匹配某个特定类型的请求
超时风险手动操作时间可能超时同样有超时风险

实战场景

场景一:调试时临时改个参数

正在 App 里一步步操作调试,突然发现某个接口的参数不对——不想停下来去配静态注入规则,直接开动态注入,下次触发这个请求时就被拦住,快速改掉放行。

场景二:调试响应时手动重发

静态注入改完响应体后,想再看一次效果——但 App 的操作流程比较复杂不容易复现。开动态注入拦截重放的请求,手动放行到修改后的响应。

场景三:观察请求内容后再决定

不确定某个接口到底传了什么参数,先拦截看看。如果参数没问题,原样放行;如果确实需要改,再手动修改放行。