# Proxyman for iOS Breakpoint 教程

> 分步教程：使用 Proxyman for iOS 的 Breakpoint 暂停 iPhone 上的流量，并编辑 URL、方法、请求头、请求体和状态码。

## 使用 Proxyman Breakpoint 在 iPhone 上修改 HTTP(s) 请求和响应 {#modify-https-request--response-on-your-iphone-with-proxyman-breakpoint}

自 2.0.0 版本起，Proxyman for iOS 支持在不修改应用任何逻辑的情况下，实时修改请求和响应数据。

本教程将介绍如何使用 Proxyman Breakpoint 工具在 iOS 设备上修改 HTTP(s) 请求和响应。例如：

* 修改请求 URL（包括协议、主机、路径和端口）以及 HTTP 方法
* 修改请求或响应的 HTTP Headers
* 修改请求的 Query 参数
* 修改请求或响应的 HTTP Body
* 修改响应的 HTTP 状态码

## 前提条件 {#prerequisites}

* 从 App Store 下载最新版本的 Proxyman：[https://apps.apple.com/us/app/proxyman/id1551292695](https://apps.apple.com/us/app/proxyman/id1551292695)
* 在 iOS 设备上安装并信任 Proxyman 证书。如果你是 Proxyman 新用户，请参阅 [从 iPhone 抓取并查看 HTTPS 流量](https://proxyman.com/posts/2021-10-17-Getting-Started-With-Proxyman-For-iOS)，开始在 iPhone 上抓取 HTTP 流量。

## 创建 Breakpoint 规则 {#create-breakpoint-rules}

创建 Breakpoint 规则有 3 种方式：

1. 从 More 标签页创建

* 进入 **More** 标签页 → **Breakpoint** → 点击 **+** 按钮。
* 填写规则的各项字段：Title、Method、Matching URL，以及是否包含子路径。
* 选择规则作用于请求、响应，还是两者同时作用。

2. 从 “Waiting Breakpoints” 界面创建

* 点击 Waiting Breakpoint 图标 → **Create Breakpoint Rule**。
* 然后填写规则（与上一种方式相同）。

3. 从右键菜单创建

* 长按请求 → **Add to Breakpoint List**。
* Proxyman 会根据所选请求自动填写规则的所有字段。

![Proxyman for iOS 右键菜单中的 Add to Breakpoint List，打开的规则已填入 httpbin.org](https://proxyman.com/docs/assets/image%20(4).png)

_从请求创建 Breakpoint 规则_

本例中，该 Breakpoint 规则同时作用于请求和响应。现在发起一个请求，看看效果。

## 修改 HTTP(s) 请求 {#modify-https-requests}

当发起的请求与规则中的 URL 匹配时，Proxyman 会暂停该请求，并提示有等待中的 Breakpoint。在 Home 界面点击小图标，即可查看等待中的 Breakpoint 列表。然后选择一个 Breakpoint，开始编辑请求。

### 修改 URL 和方法 {#modify-url--method}

你可以修改 HTTP 方法、URL 和 Query 参数。修改 Query 参数时，URL 会随之更新；反之亦然。

![Proxyman for iOS Breakpoint 请求编辑器，显示已修改的 URL 查询参数，并打开了 HTTP 方法菜单](https://proxyman.com/docs/assets/image%20(18).png)

_修改 URL 和 HTTP 方法_

### 修改 Body {#modify-body}

如果将 Body 替换为新的数据类型，Proxyman 会自动检测 Content-Type，并为你更新 Headers。

## 执行、中止和继续 Breakpoint {#execute-abort-continue-breakpoint}

修改完成后，在右上角的菜单中执行请求或响应。如需保留原始请求，请使用 **Continue**；如需取消，请使用 **Abort**。

由于该 Breakpoint 规则同时作用于请求和响应，点击 **Execute** 后，响应会被添加到等待中的 Breakpoint 列表。

现在，你可以修改响应的 HTTP 状态码、更新 Headers，或替换响应体（操作方式与修改请求相同）。

做得好！在流量列表中，蓝色小图标表示该流量已被修改。

请求和响应均已按预期更新。

![Proxyman for iOS 请求详情，已由 Breakpoint 执行，并显示新的响应体](https://proxyman.com/docs/assets/image%20(9).png)

_请求和响应已由 Breakpoint 修改_

**注意事项**：

* 创建新规则时，Breakpoint 工具和该规则默认均处于启用状态。你可以根据需要随时开启或关闭。
* 请确保 VPN、Breakpoint 工具和 Breakpoint 规则均已启用，Breakpoint 才能正常工作。
* 如果请求或响应命中了第一条规则，则不会再应用其他规则。
* 编辑请求时，Response 标签页不可用；编辑响应时，Request 标签页为只读。

## 下一步 {#whats-next}

Breakpoint 可以让你实时修改请求和响应，但需要大量手动操作。如需自动化，请参阅 [Map Local for iOS 教程](https://proxyman.com/docs/zh-cn/proxyman-ios/tutorial-for-ios/map-local-for-ios-tutorial)，了解如何自动将本地文件映射为响应。
