请求与响应修改:三个典型调试实战
实战一:模拟库存不足验证客户端处理
问题:服务端说「库存不足时客户端会显示提示」,但线上库存一直有,没法验证。
方案:用静态注入把响应体里的库存字段改成 0。
操作步骤
- 在 App 里打开商品详情页,让 httpCanary 抓到商品接口的响应
- 在请求列表中长按这个请求 → 静态注入
- 响应侧 → 找到响应体里的
inventory或stock字段 - 把值改成
0 - 保存注入器,刷新 App 里的商品详情页
- 观察客户端是否正确显示「库存不足」提示
进阶:同时改状态码试试——把正常的 200 改成 500,看客户端对服务端错误的处理。
实战二:注入测试 Token 模拟登录态
问题:测试环境的 Token 有时效,过期后登录接口会报错。想跳过登录直接进入主流程测试。
方案:用静态注入拦截所有请求,自动给 Header 加上测试 Token。
操作步骤
- 新建静态注入器
- 匹配条件:目标 Host 填测试环境的接口域名
- 请求侧 → 增加 Header → 名称
Authorization,值填Bearer eyJhbG...(你的测试 Token) - 保存启用
- 之后所有发到测试环境的请求都会自动带上这个 Token
进阶:如果你想让某个请求不带 Token(模拟未登录状态),可以给这个特定接口单独建一个注入器,在请求侧删除 Authorization Header。
实战三:修改 Cookie 测试会话过期
问题:想验证客户端在服务端返回登录失效时会不会自动跳转登录页。
方案:用静态注入修改响应体里的 Cookie 设置,让服务端下发一个已过期的 Cookie。
操作步骤
- 先正常登录,让 App 拿到有效的登录 Cookie
- 在请求列表中找到登录成功后的第一个请求,长按 → 静态注入
- 响应侧 → 找到
Set-CookieHeader,把过期时间改成过去的时间点 - 或者更简单:在响应体里的业务数据中找到表示登录状态的字段,改成失效
- 保存注入器,继续操作 App
- 观察客户端是否检测到登录态失效并跳转登录页
进阶:直接改响应状态码——把正常接口的 200 改成 401 或 403,看客户端对认证失败的处理。
实战四:屏蔽请求测试离线场景
问题:想知道 App 在网络断开时会怎么表现,但直接关网络会同时影响很多东西。
方案:用静态注入或断点屏蔽特定请求。
操作步骤
- 静态注入器中:响应侧直接丢弃响应(部分版本支持)
- 或者用断点:拦截目标请求后选择「丢弃」
- 客户端会收到连接超时或连接被拒绝的错误
- 观察 App 是否正确显示离线提示或缓存数据
注意事项汇总
- 注入完记得关闭——调试结束后回到设置里关闭或删除注入器,不要让规则一直生效
- 格式要正确——修改 JSON 响应时保证 JSON 合法,格式错误客户端可能崩溃
- 一次改一个字段——同时改多个字段出了问题不好定位,建议分步修改逐步验证
- 注意多个注入器的顺序——后创建的注入器对同一字段的修改会覆盖前面的
- 大请求慎用动态注入——超时风险高,改用静态注入或直接丢弃