httpCanary 中文文档 下载 App

请求与响应修改:三个典型调试实战

实战一:模拟库存不足验证客户端处理

问题:服务端说「库存不足时客户端会显示提示」,但线上库存一直有,没法验证。

方案:用静态注入把响应体里的库存字段改成 0。

操作步骤

  1. 在 App 里打开商品详情页,让 httpCanary 抓到商品接口的响应
  2. 在请求列表中长按这个请求 → 静态注入
  3. 响应侧 → 找到响应体里的 inventory 或 stock 字段
  4. 把值改成 0
  5. 保存注入器,刷新 App 里的商品详情页
  6. 观察客户端是否正确显示「库存不足」提示

进阶:同时改状态码试试——把正常的 200 改成 500,看客户端对服务端错误的处理。

实战二:注入测试 Token 模拟登录态

问题:测试环境的 Token 有时效,过期后登录接口会报错。想跳过登录直接进入主流程测试。

方案:用静态注入拦截所有请求,自动给 Header 加上测试 Token。

操作步骤

  1. 新建静态注入器
  2. 匹配条件:目标 Host 填测试环境的接口域名
  3. 请求侧 → 增加 Header → 名称 Authorization,值填 Bearer eyJhbG...(你的测试 Token)
  4. 保存启用
  5. 之后所有发到测试环境的请求都会自动带上这个 Token

进阶:如果你想让某个请求不带 Token(模拟未登录状态),可以给这个特定接口单独建一个注入器,在请求侧删除 Authorization Header。

实战三:修改 Cookie 测试会话过期

问题:想验证客户端在服务端返回登录失效时会不会自动跳转登录页。

方案:用静态注入修改响应体里的 Cookie 设置,让服务端下发一个已过期的 Cookie。

操作步骤

  1. 先正常登录,让 App 拿到有效的登录 Cookie
  2. 在请求列表中找到登录成功后的第一个请求,长按 → 静态注入
  3. 响应侧 → 找到 Set-Cookie Header,把过期时间改成过去的时间点
  4. 或者更简单:在响应体里的业务数据中找到表示登录状态的字段,改成失效
  5. 保存注入器,继续操作 App
  6. 观察客户端是否检测到登录态失效并跳转登录页

进阶:直接改响应状态码——把正常接口的 200 改成 401 或 403,看客户端对认证失败的处理。

实战四:屏蔽请求测试离线场景

问题:想知道 App 在网络断开时会怎么表现,但直接关网络会同时影响很多东西。

方案:用静态注入或断点屏蔽特定请求。

操作步骤

  1. 静态注入器中:响应侧直接丢弃响应(部分版本支持)
  2. 或者用断点:拦截目标请求后选择「丢弃」
  3. 客户端会收到连接超时或连接被拒绝的错误
  4. 观察 App 是否正确显示离线提示或缓存数据

注意事项汇总

  1. 注入完记得关闭——调试结束后回到设置里关闭或删除注入器,不要让规则一直生效
  2. 格式要正确——修改 JSON 响应时保证 JSON 合法,格式错误客户端可能崩溃
  3. 一次改一个字段——同时改多个字段出了问题不好定位,建议分步修改逐步验证
  4. 注意多个注入器的顺序——后创建的注入器对同一字段的修改会覆盖前面的
  5. 大请求慎用动态注入——超时风险高,改用静态注入或直接丢弃