Skip to content

iPhone 远程映射(Map Remote):把 App 接口请求转发到测试服务器或本地

用 HTTPS Capture 的远程映射,把 iPhone 上匹配的请求转发到另一台服务器,可以修改主机、端口、协议和路径,不用重新打包 App,也不用配代理。

2 分钟阅读HTTPS Capture

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 标记;请求详情的 概览 里会显示实际转发到的地址。

创建远程映射规则

  1. 在抓包页点 规则 → 远程映射。
  2. 打开 启用远程映射,点 +。
  3. 在 匹配 里填写匹配模式,选 包含 或 正则表达式。
  4. 在 目标 里填写替换后的地址。
  5. 保存后,新请求立即生效。

包含:简单的子串替换

URL 中第一次出现匹配模式的地方会被替换成目标地址,其余部分(包括路径和查询参数)保持不变。

匹配模式目标结果
https://api.example.comhttps://staging.example.com相同路径转到预发环境
https://api.example.comhttp://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 地址,或者和原地址完全相同,这条规则就按未命中处理,请求照常发往原服务器。打错一个字不会让网络断掉。

注意事项

  • 远程映射作用于 HTTP 和 HTTPS 请求,WebSocket 连接不会被映射。
  • HTTPS 映射到 HTTP 时,App 和 HTTPS Capture 之间仍然是 HTTPS,只有转发出去的那一段是明文 HTTP,很适合没有配置 TLS 的本地开发服务。
  • 处理顺序在 请求映射、URL 重写 的屏蔽和重定向、服务端回放 之后。前面任何一步已经返回了响应,远程映射就不会再执行。
  • 把生产、预发、本地的映射分别放进不同的 配置文件,切换环境只要点一下。

HTTPS Capture

Capture and decrypt HTTPS traffic on iPhone

App Store

准备好试试了吗?

HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone

App Store 免费下载