# Proxyman for iOS Map Local 教程

> 分步教程：使用 Proxyman for iOS 的 Map Local 在 iPhone 上模拟 HTTP/HTTPS 响应，并修改状态码、响应头和响应体。

## 使用 Proxyman Map Local 在 iPhone 上修改 HTTP(s) 响应 {#manipulate-https-responses-on-iphone-with-proxyman-map-local}

自 2.0.0 版本起，Proxyman for iOS 提供了 Map Local 工具。你可以将本地文件的内容用作与规则匹配的请求的响应。

Map Local 可以帮助你更快地开发。无需修改服务器上的数据，即可快速测试各种边界情况。对于需要使用不同响应测试应用行为的 QA 和开发人员来说，它也是必备工具。以下是一些测试场景：

* 定义一个响应，并将其用于匹配的请求。
* 快速尝试响应中的新参数。
* 测试应用在不同响应参数下的行为。
* 使用异常内容测试 UI 布局。
* 使用特定的响应参数快速复现 Bug。
* 使用本地文件模拟 API。当需要提前测试尚未上线的 API 时，这一功能非常实用。

## 前提条件 {#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 流量。

## 创建 Map Local 规则 {#create-map-local-rules}

创建 Map Local 规则有 2 种方式：

1. 从 More 标签页创建

* 进入 **More** 标签页 → **Map Local** → 点击 **+** 按钮。
* 填写规则的各项字段：Name、URL、Method，以及是否包含子路径。

2. 从右键菜单创建

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

![Proxyman for iOS 右键菜单中的 Add to Map Local，打开根据请求填充的 Map Local 编辑器](https://proxyman.com/docs/assets/image%20(14).png)

_从请求创建 Map Local 规则_

### 修改响应头、状态码和响应体 {#modify-header-status-code-and-body}

在 Map Local 编辑器中，你可以修改响应头、状态码和响应体。如果将响应体替换为新的数据类型，Proxyman 会自动检测 Content-Type，并为你更新 Headers。

## 使用 Map Local 工具修改响应 {#manipulate-response-with-map-local-tool}

![Proxyman for iOS Map Local 编辑器，状态码为 201 Created，旁边是已启用的 Map Local 规则列表](https://proxyman.com/docs/assets/image%20(12).png)

_启用 Map Local 和规则_

一切就绪。再次发起请求，看看效果。

如果传入请求的 URL 与**预先定义的匹配规则**相符，且本地文件有效，Proxyman 会用本地文件的内容替换该请求的响应体。

如果请求不匹配任何规则，服务器返回的响应保持不变。

![Proxyman for iOS 流量列表、由 Map Local 执行的请求详情，以及被本地文件替换的响应体](https://proxyman.com/docs/assets/image%20(13).png)

_响应已由 Map Local 修改_

做得好！在流量列表中，蓝色小图标表示该流量已被修改。响应内容已替换为本地文件。

## 下一步 {#whats-next}

Map Local 可以让你尝试不同的响应，以测试设备上的布局或内容。但它只能修改响应。如果还需要修改请求，请参阅 [Breakpoint for iOS 教程](https://proxyman.com/docs/zh-cn/proxyman-ios/tutorial-for-ios/breakpoint-for-ios-tutorial)。Breakpoint 可以在不修改应用任何逻辑的情况下，实时修改请求和响应。
