使用 Proxyman 抓取 React Native 应用的 HTTPS 流量
你是否遇到过这样的问题:调用 API 时控制台没有任何报错,但应用里却没有显示任何数据?你是否想查看网络请求来调试自己的应用?在本教程中,我们将介绍如何把 Proxyman 用作中间人代理(man-in-the-middle proxy),抓取并检查 React Native 应用的 HTTPS 流量。

1. 前提条件
- 下载并安装最新版本的 Proxyman
- 在 Mac 上使用 Xcode 11.4+
- 本教程使用开源的 React Native 应用 Trackie 进行调试。你可以在这里找到它的源代码。
2. 开始使用
只要 Proxyman 成功下载并安装,它就能抓取 React Native 应用发出和接收的所有请求/响应。

不过你会发现,虽然已经能抓取应用的流量,却仍然看不到响应的内容。
现在是时候启用 SSL Proxying,并在模拟器上安装 Proxyman 证书了!
3. 启用 SSL Proxying
点击“Enable only this domain”或“Enable all domains from Trackie”
4. 在 iOS 模拟器上安装并信任 Proxyman 证书
在顶部菜单栏中选择 Certificate -> Install Certificate for iOS -> Simulators → Install Certificate
Proxyman 提供了 Setup Guide(设置向导),可以帮你省去所有手动操作。在设置窗口中点击 Install and Trust,它会自动为你配置证书。

5. 检查网络流量
安装证书并重启模拟器后,重新运行应用并发起一次 API 调用。Proxyman 会抓取并显示请求和响应的内容,方便你调试。

6. 如果看不到应用的流量怎么办?
如果在 iOS 模拟器上遇到 SSL 错误,或者看不到 HTTP/HTTPS 请求,请查看 Proxyman 文档中的故障排除章节,看看问题能否解决。如果仍然无法解决,也请不要犹豫,尽可能详细地写邮件告诉我们,我们很乐意提供帮助。
7. 总结
网络请求有时会很棘手,也让人沮丧,但现在调试它们对你来说应该轻而易举。Proxyman 或其他 mitm 代理工具,都可以帮你抓取并检查 iOS、Android 和 React Native 应用的 HTTP/HTTPS 流量。如果你想深入学习,成为网络调试高手,可以看看我们关于 Proxyman 高级功能的系列文章,例如 Map Local、Breakpoint 和 Scripting 工具。它们可以帮你修改 HTTP/HTTPS 请求和响应。
希望你喜欢本教程。祝调试愉快!👨🏻🚀
平台说明
React Native 使用设备的常规网络路径,因此在 iPhone 或 iOS 模拟器上请参考当前的 iOS 指南,在 Android 设备或模拟器上请参考 Android 指南。除非测试证书已位于系统证书库中,否则 Android 调试版本可能需要配置网络安全(network security configuration)。如果设置代理后 Metro 无法加载,请将本地 Metro 主机添加到代理绕过列表中,而不要关闭 API 主机的流量抓取。
Proxyman 是一款高性能的 macOS 应用,可帮助开发者抓取并检查 iOS 设备、iOS 模拟器和 Android 设备上应用及域名的 HTTP(S) 流量。
