测试时用 Map Remote 将 API 从生产环境切换到 localhost
学完本教程,你将完成以下内容:
- 在 Mac 上设置 Proxyman
- 从网页浏览器中抓取请求/响应
- ✅ 将生产环境映射到 localhost 环境
为什么需要将 API 端点从生产环境切换到本地环境?
如果你是开发人员或 QA,通常需要在生产环境上测试 API 端点。但有时,你需要结合新的改动,在本地环境中测试 API 端点。
前提条件
- 下载最新的 Proxyman macOS 版本。
开始之前,请确保你已在 Mac 上安装 Proxyman,并在 Mac 上信任 Proxyman 证书。
如果你是新用户,请先阅读 macOS 入门指南,它会帮你完成 Mac 的设置。
最后,在浏览器中打开 www.producthunt.com 或任意网站,然后抓取流量。Proxyman 现在可以抓取并解密浏览器中的 HTTPS 流量。

场景 1:从生产环境切换到 localhost 环境
假设我们有一个 API 端点托管在生产环境 https://httpbin.org 上,我们想在本地环境中测试该网站,本地环境中运行着一个 HTTPBin 服务器 http://localhost:8080。我们可以使用 Proxyman 应用中的 Map Remote 工具,将 API 端点从生产环境切换到本地环境。
例如:
- https://httpbin.org/get?id=123 -> http://localhost:8080/get?id=123
- https://httpbin.org/post -> http://localhost:8080/post
- https://httpbin.org/put -> http://localhost:8080/put
- https://httpbin.org/delete -> http://localhost:8080/delete
下面看看具体怎么操作。
步骤 1:抓取生产环境的 HTTPS 流量
在浏览器中访问 https://httpbin.org/get?id=123 并抓取流量。请确保此时 Proxyman 能够抓取并解密浏览器中的 HTTPS 流量。

如果没有,请在 Proxyman 中启用 SSL/TLS Interception。

然后重新发送请求。
步骤 2:准备本地 HTTPBin 服务器
它可以是你自己的 NodeJS 或 Python HTTPBin 服务器,不过在本教程中,我将使用 HTTPBin 作为本地 HTTPBin 服务器。
让我们在 localhost:8080 上运行 HTTPBin 服务器。
docker run -p 8080:80 kennethreitz/httpbin
如果你还没有安装 Docker,请从这里安装。
验证 HTTPBin 服务器是否正在 localhost:8080 上运行。
curl http://localhost:8080/get?id=123
如果你看到了 HTTPBin 服务器返回的响应,就说明它正在 localhost:8080 上运行。

步骤 3:将生产环境映射到 localhost 环境
在步骤 1 的请求上右键单击 -> Tools -> Map Remote。使用以下配置:
映射规则
- 名称:从生产环境映射到 localhost
- 规则:https://httpbin.org/*
- 选择 ANY Method,并勾选 Including subpath 复选框
映射到
- 协议:http
- 主机:localhost
- 端口:8080

创建此规则后,所有来自 https://httpbin.org/* 的请求都会被映射到 http://localhost:8080/*,并发送到本地 HTTPBin 服务器。
步骤 4:测试 API 端点
再次在浏览器中访问 https://httpbin.org/get?id=123。你将看到来自本地 HTTPBin 服务器的响应。

你可以打开 Summary 标签页 -> Debugging Tools 部分,查看应用于该请求的是哪条规则,以及它是如何被映射的。

总结
Map Remote 工具可以在不修改代码的情况下测试 API 端点,非常实用。你可以随时将 API 端点从生产环境切换到 localhost 环境。
建议先从范围较窄的主机和路径规则开始,而不是映射所有生产环境请求。请检查 Summary 标签页,确认是哪条规则修改了该请求,尤其是在启用了多个工具的情况下。本地测试结束后请关闭该规则,避免之后的会话在不知情的情况下,把看似生产环境的流量悄悄发送到旧的本地服务器。
下一步
- 下载 Proxyman:Proxyman 下载
- 了解更多 Proxyman:Proxyman 文档
- 了解更多 Map Remote 工具:Map Remote 工具文档
