返回

初学者也能快速学会Charles移动端抓包 轻松调试iOS手机和HarmonyOS 4.0

Android

用 Charles 移动端抓包轻松调试 iOS 和 HarmonyOS 手机

简介

作为一名移动开发人员或测试人员,对移动端应用程序进行调试是家常便饭。而 Charles,一款功能强大的抓包工具,让这个过程变得轻松无忧。通过抓取移动端设备的网络请求和响应数据,Charles 帮助你发现问题并及时修复,让你调试事半功倍。

准备工作

  1. 下载 Charles 工具

访问 Charles 官网,下载适合你操作系统的 Charles 版本。安装并启动 Charles。

  1. 设置代理

在 Charles 菜单栏中,依次点击 "Proxy" > "Proxy Settings"。在 "HTTP Proxy" 选项卡中,勾选 "Enable transparent HTTP proxying",并点击 "OK" 保存设置。

  1. 获取设备 IP 地址

将 iOS 手机或 HarmonyOS 4.0 手机连接到与电脑相同的 Wi-Fi 网络。在手机上打开 Wi-Fi 设置,找到当前连接的 Wi-Fi 网络,点击 "i" 图标。手机 IP 地址在 "IP 地址" 旁显示。

抓取网络请求和响应数据

  1. 连接手机到 Charles

在手机上安装 Charles Proxy 应用。点击 "Settings" > "Proxy",在 "HTTP Proxy" 部分输入你的电脑 IP 地址和 Charles 默认端口号 (8888)。点击 "OK" 保存设置。

  1. 开始抓取数据

在 Charles 主窗口中,点击 "Start" 按钮启动抓取。在 "Structure" 选项卡中,可以看到所有抓取到的请求和响应数据。

  1. 分析数据

双击任何请求或响应查看详细信息。在 "Headers" 选项卡中,查看请求和响应头的信息。在 "Body" 选项卡中,查看请求和响应体的数据。

常见问题解答

  1. 为什么我的手机无法连接到 Charles?

确保手机和电脑连接到相同的 Wi-Fi 网络,并且已经按照步骤设置代理。如果问题仍未解决,尝试重启 Charles 和手机。

  1. 为什么我抓取不到任何数据?

检查 Charles 是否正在运行并处于 "Start" 状态。确保手机已连接到 Charles,并且未使用 VPN 或其他代理工具。

  1. 如何使用 Charles 调试我的应用程序?

在 Charles 中设置断点,拦截特定请求或响应。你可以修改请求或响应的数据,然后重新发送它们。查看请求和响应的详细信息,帮助你发现问题并进行修复。

结语

借助 Charles,抓取移动端设备的网络请求和响应数据轻而易举,让你轻松发现问题并进行修复。Charles 不仅是开发人员和测试人员的利器,也是所有希望深入了解移动端网络请求的人的必备工具。

代码示例

// Swift 代码用于 iOS 手机

// 初始化 Charles 代理设置
let proxySettings = CharlesProxySettings(host: "localhost", port: 8888)

// 设置代理
URLSessionConfiguration.default.connectionProxySettings = proxySettings

// 发送请求
let request = URLRequest(url: URL(string: "https://example.com")!)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    // 处理请求结果...
}
task.resume()
// HarmonyOS 代码用于 HarmonyOS 4.0 手机

// 初始化 Charles 代理设置
let proxySettings = HapProxySettings(host: "localhost", port: 8888)

// 设置代理
HAPConnectNetwork.getNetwork().setConfig(proxySettings)

// 发送请求
let request = HAPHttpRequest(url: "https://example.com")
let task = HAPHttpClient().newRequest(request).submit { response, error in
    // 处理请求结果...
}