ProxyPin 请求重写 修改请求头响应体重定向
请求重写能做什么
请求重写是 ProxyPin 最常用的调试工具之一,在 HTTP 请求/响应层面做静态修改:
- 请求重定向:把请求 A 转到请求 B(301/302)
- 请求头注入:给请求加一个自定义 Header(如测试 Token)
- 响应体替换:把服务器返回的 JSON 里某个字段改掉
- 请求 URL 修改:改 API 版本路径(
/api/v1/→/api/v2/) - 查询参数增删:给 GET 请求加一个参数
相比 JS 脚本,请求重写配置更简单、性能更好,适合固定规则的场景。
配置入口
进入「我的」→「请求重写」:
- 点击「+」添加新规则
- 设置规则类型(重定向 / 请求头 / 响应头 / 请求体 / 响应体)
- 配置匹配 URL(精确匹配或正则)
- 填写修改内容
- 启用规则
规则类型详解
重定向(Redirect)
将匹配的请求重定向到新地址。支持:
- 301(永久重定向)
- 302(临时重定向)
- 307(临时重定向,保留请求方法)
示例:将生产 API 转到测试环境
匹配:https://api.example.com/*
替换:https://staging-api.example.com/$1
状态码:302
$1 是正则捕获组引用,* 匹配的部分会自动填入。
请求头重写(Request Header)
修改发出的请求头。支持添加、删除、替换:
| 操作 | 效果 |
|---|---|
| 添加 | 原来没有的 Header,新增一条 |
| 删除 | 匹配的 Header 从请求中移除 |
| 替换 | 将匹配的 Header 值改成新内容 |
示例:注入测试用 Token
匹配:**/api/**
Header 名称:Authorization
操作:添加
值:Bearer test-token-for-debug
响应头重写(Response Header)
修改服务器返回的响应头。常用于解决跨域问题(本地开发时)。
示例:添加 CORS 头
匹配:所有请求
Header 名称:Access-Control-Allow-Origin
操作:添加
值:*
请求体替换
修改 POST/PUT 等请求的 Body 内容。支持正则匹配替换。
示例:把请求中的生产 API Key 替换掉
匹配:请求体
搜索:pk_live_[a-zA-Z0-9]+
替换:pk_test_replaced
响应体替换
修改服务器返回的 Body。这是最强大的功能之一,可以完全改变 App 看到的数据。
示例:伪造接口返回数据用于边界测试
匹配:https://api.example.com/user/profile
操作:响应体替换
新内容:{"code":200,"data":{"name":"测试用户","balance":0}}
规则优先级
多条规则同时启用时:
- 规则按列表顺序从上到下执行
- 每条规则独立匹配和修改
- 可以组合多条规则实现复杂效果
建议把高频规则放在前面,降低匹配次数。
与 JS 脚本的对比
| 维度 | 请求重写 | JS 脚本 |
|---|---|---|
| 配置难度 | 低(表单填写) | 中(写代码) |
| 灵活性 | 固定规则 | 动态逻辑(条件判断、循环) |
| 性能 | 高 | 中等 |
| 状态管理 | 无 | 有(context 持久化) |
| 适用场景 | 常见需求 | 复杂场景 |
建议:能用请求重写解决的就不用脚本,请求重写搞不定的再上脚本。
实战:前端联调后端 Mock
前后端并行开发时,后端接口还没好。用请求重写把前端请求转到本地 Mock:
匹配:https://api.myapp.com/**
操作:重定向(302)
替换:http://localhost:3000/$1
前端代码零改动,ProxyPin 自动把请求转到本地 Mock 服务。