ProxyPin请求重写实战指南:Mock数据、改请求头、造报错场景一次讲清

发布时间:2026/9/12 4:09:25
ProxyPin请求重写实战指南:Mock数据、改请求头、造报错场景一次讲清 ProxyPin请求重写实战指南Mock数据、改请求头、造报错场景一次讲清【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutterProxyPin 是一款开源免费、跨全平台的 HTTP(S) 抓包工具而请求重写是其中最常用的调试功能之一不用改后端代码也不用动客户端就能在流量经过代理时直接替换请求或响应里的数据。本文按先跑通 → 基础配置 → 进阶用法 → 易踩的坑 → 团队共享的顺序带你把 ProxyPin 请求重写从第一条规则用到整套规则管理。三分钟加出第一条重写规则先找到入口桌面版设置 → 请求重写对应源码 lib/ui/desktop/setting/request_rewrite.dart移动版设置 → 高级功能 → 请求重写对应 lib/ui/mobile/setting/request_rewrite.dart点击添加规则后一条规则由两部分组成匹配条件URL 正则、HTTP 方法GET/POST 等。URL 支持正则语法留空方法则匹配所有请求重写项具体要改什么。根据 rewrite_rule.dart 中的定义规则类型共有五种——替换请求、替换响应、修改请求、修改响应、重定向每种类型下面又有更细的重写项比如请求行、请求头、请求体、状态码、响应头、响应体以及添加/修改/删除参数和 Header。配好后打开规则开关即可生效。这里有几个容易踩的坑提前说清楚规则是按顺序匹配、先命中先生效的request_rewrite_manager.dart 中getRequestRewriteRule方法按rules列表顺序遍历所以宽泛的规则要放在后面所有规则之外还有一个总开关enabled属性总开关关闭时所有重写都不执行修改过规则后注意确认开关状态单条规则和总开关是两层控制。用 Mock 数据替换响应体后端没发版也能验前端最常见的需求是后端接口还没改完但前端想先验证新字段的渲染逻辑。这时不需要等后端直接 Mock 返回即可。新建一条规则匹配目标接口例如/api/user/profile规则类型选替换响应添加响应体重写项在值里填入自定义 JSON支持动态变量启用规则此后命中该规则的请求都会拿到你写的模拟数据。一个具体的例子来自电商场景调试抓包拿到商品详情接口如/api/goods/detail对它建一条替换响应规则把响应体中价格字段如$.data.price对应的值改成9.9保存后 APP 里看到的就是改过价的商品数据方便验证低价展示价格校验这类前端分支。实现原理不复杂命中规则后getRewriteItems方法会读取该规则挂载的重写项带缓存再逐项作用到响应上。响应状态码、响应头也都能一起替换等于整条响应都可以本地伪造。批量改请求头调试第三方接口不用改一行代码调第三方 API 时经常需要临时加鉴权头、伪装 UA。ProxyPin 的做法是建一条全局规则URL 填.*让所有请求都命中规则类型选修改请求逐条添加 Header 重写项添加头部X-Debug: true修改头部User-Agent: ProxyPin-Debug/1.0删除头部不想要的字段Header 值支持正则匹配替换例如把Accept: .*统一替换成Accept: application/json。这种方式的好处是可以随时开关、不影响任何代码适合联调阶段临时注入调试参数。用完记得关掉全局规则避免误伤其他请求。模拟 500 错误与网络延迟把异常流程跑一遍前端的异常处理逻辑平时很难触发可以用重写项主动构造模拟服务报错添加状态码重写项对应replaceResponseStatus类型值填500接口即刻返回服务端错误模拟慢接口/超时在高级选项中把延迟响应设为3000ms前端 loading 态、超时重试逻辑都会被真实触发模拟断网响应体置空再配上较长延迟可以近似还原请求挂掉的体验。配合替换响应里自定义的状态码和空响应体基本能把接口报错、慢响应、无响应这三类常见异常在本地全部复现不用真的去停服或断网。规则集切换与导入导出环境管理和团队共享多环境切换开发、测试、生产往往要指向不同的域名。可以给每个环境建一套规则用重定向规则做域名映射——例如把请求api.example.com重写到api.dev.example.com规则集之间靠各自开关快速切换。整套规则集的总控就是 request_rewrite_manager.dart 里的enabled属性关掉它即等于退出 Mock 模式。团队共享在请求重写设置页勾选规则点击导出会得到一份包含匹配条件和全部重写项的 JSON 配置同事拿到文件后通过导入加载即可还原同一套调试环境所有规则最终持久化在用户主目录下的request_rewrite.json见flushRequestRewriteConfig方法备份或同步这一个文件就够了。这样谁来调试都先用同一套规则就成立了新人接手排查问题时不用再口头描述要改哪些头、Mock 哪些字段。小结ProxyPin 的请求重写把改请求、Mock 响应、造异常、管规则四件事收进了一个功能里配合正则匹配和导入导出足以覆盖日常接口调试的大部分场景。仓库地址git clone https://gitcode.com/GitHub_Trending/ne/network_proxy_flutter【免费下载链接】network_proxy_flutterOpen source free capture HTTP(S) traffic software ProxyPin, supporting full platform systems项目地址: https://gitcode.com/GitHub_Trending/ne/network_proxy_flutter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考