如何用 Proxyman 修改 HTTP 响应状态码、响应头和响应体
本教程将完成以下内容:
- 下载并设置 Proxyman macOS / Windows / Linux 版
- 为请求设置 Breakpoint
- ✅ 为每个传入请求实时修改响应状态码、响应头或响应体
如果你想针对同一个请求测试不同的响应,而无需等待服务器返回结果,Breakpoint 工具会非常有用。

1. 下载并设置 Proxyman
- 从 Proxyman 官网 下载 Proxyman macOS / Windows / Linux 版
- 安装 Proxyman。
- 打开 Proxyman,进入 Certificate 菜单 → Install Certificate for this Mac...
- 按照提示安装证书。
- 确认 Proxyman 证书上显示绿色对勾标记。

2. 为你的设备设置 Proxyman
具体设置取决于你要在哪种设备上测试。以下列出了所有要求:
2.1 iOS 设备
- 进入 Certificate 菜单 → Install Certificate on iOS → Physical Devices
- 按照全部步骤在 iOS 设备上安装并信任证书。
2.2 iOS 模拟器
- 进入 Certificate 菜单 → Install Certificate on iOS → Simulators...
- 按照全部步骤在 iOS 模拟器上安装并信任证书。

2.3 Android 设备
- 进入 Certificate 菜单 → Install Certificate on Android → Physical Devices
- 按照全部步骤在 Android 设备上安装并信任证书。
2.4 Android 模拟器
- 进入 Certificate 菜单 → Install Certificate on Android → Emulators...
- 按照全部步骤在 Android 模拟器上安装并信任证书。

2.5 NodeJS / Python / Golang / Ruby / PHP / ...
- 对于后端测试,操作非常简单。只需进入 Setup 菜单 → Automatic Setup → 选择你常用的终端 → 打开新的终端窗口。
- 在该终端中,像平常一样启动后端服务即可。Proxyman 会自动抓取后端服务的所有 HTTPS 流量。

3. 为请求设置 Breakpoint
现在来创建一条 Breakpoint 规则。
假设我们有这样一个请求,URL 为 https://httpbin.org/post?id=proxyman&action=change_response,请求体如下:
{
"name": "Proxyman",
"id": 123,
"details": {
"address": "123 Main St, Anytown, USA",
"phone": "123-456-7890",
"email": "hi@proxyman.com"
}
}
我们希望将响应状态码改为 201,新增一个响应头 X-Proxyman-Test: true,并将响应体改为:
{
"name": "Get API",
}
在创建 Breakpoint 规则之前,需要先确认 Proxyman 能够抓取上述请求的流量。
- 打开终端应用,运行以下 cURL 命令(请确保 Proxyman 正在运行)
curl -X POST https://httpbin.org/post?id=proxyman&action=change_response -d '{"name": "Proxyman", "id": 123, "details": {"address": "123 Main St, Anytown, USA", "phone": "123-456-7890", "email": "hi@proxyman.com"}}' --proxy localhost:9090
- 回到 Proxyman,你会看到该请求已被抓取。

如果看不到 HTTP 响应,请尝试点击响应面板上的 “Enable on this domain” 按钮,然后重新运行 cURL 命令。
- 现在为上述请求创建 Breakpoint 规则:右键点击该请求,选择 Tools → Breakpoint,Proxyman 会自动为该请求创建一条 Breakpoint 规则。
- 勾选 “On Response” 复选框,并保持 “on Request” 复选框不勾选。

- 现在开始测试。打开终端应用,重新运行相同的 cURL 命令。
- 此时会打开新的 Breakpoint 编辑器。在响应面板中,你可以:

- 修改响应状态码

- 修改响应头

- 修改响应体

- 点击 “Execute” 按钮以应用更改。
- 完成。
查看终端,你会看到响应已被修改。

3. 下一步
- Breakpoint 工具同样允许你修改 HTTP 请求,包括 URL、方法、请求头、请求体等。
- Breakpoint 工具的一个缺点是,每次命中断点时都必须手动修改 HTTP 请求、请求头和请求体,非常耗时 ❌
- 如果你想实现自动化,可以查看 Scripting 工具 以及所有实用的 代码片段。
可重复测试的小技巧
尽量缩小规则范围,精确匹配所需的 host、path 和 method,这样其他请求就能正常通过。如果需要反复测试同一种错误,可以将这些值保存为 Breakpoint Template,或者使用 Map Local 或 Scripting 来获得完全可重复的结果。测试结束后请关闭该规则,以免影响之后的测试。
延伸阅读
Proxyman 是一款高性能的 macOS/Windows/Linux 应用,帮助开发者抓取 iOS 设备、iOS 模拟器和 Android 设备上的 HTTPS 流量。
前往 https://proxyman.com 获取。

Noah Tran