App 连的是 https://api.example.com,你却想让它连预发服务器、同事的电脑,或者 http://192.168.1.20:8080 上的本地服务。改 Base URL 重新打包太慢,App Store 上的正式版更是改不了。HTTPS Capture 的 远程映射(Map Remote)可以在 iPhone 上把匹配的请求转发到另一台服务器,再把那台服务器的响应交还给 App。
远程映射能改什么
Hosts 规则 只改连接的 IP;远程映射可以改目标地址的每一部分:
- 主机:
api.example.com→staging.example.com - 端口:→
:8080 - 协议:
https→http,反过来也行 - 路径:
/v1/→/v2/
App 仍然以为自己在访问原来的 URL。请求列表里显示的是 原始 URL,并带一个青色的 Mapped 标记;请求详情的 概览 里会显示实际转发到的地址。
创建远程映射规则
- 在抓包页点 规则 → 远程映射。
- 打开 启用远程映射,点 +。
- 在 匹配 里填写匹配模式,选 包含 或 正则表达式。
- 在 目标 里填写替换后的地址。
- 保存后,新请求立即生效。
包含:简单的子串替换
URL 中第一次出现匹配模式的地方会被替换成目标地址,其余部分(包括路径和查询参数)保持不变。
| 匹配模式 | 目标 | 结果 |
|---|---|---|
https://api.example.com | https://staging.example.com | 相同路径转到预发环境 |
https://api.example.com | http://192.168.1.20:8080 | 用 HTTP 转到本地服务 |
api.example.com/v1/ | api.example.com/v2/ | v1 接口转到 v2 |
正则表达式:带分组的匹配
可以使用捕获分组,在目标里用 $1、$2 引用。比如匹配模式写 https://([a-z]+)\.example\.com/,目标写 https://$1.staging.example.com/,所有子域名都会转到对应的预发域名。
规则写错也不会断网
如果替换结果不是合法的 http/https 地址,或者和原地址完全相同,这条规则就按未命中处理,请求照常发往原服务器。打错一个字不会让网络断掉。
注意事项
准备好试试了吗?
HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone
App Store 免费下载