最近在做一个项目,需求抓包移动端的网络恳求。研讨了一下,最终决定用 Charles,比较便利,只需求将手机署理到电脑就可以。下文将以我手头的设备为例,一台 macbook 和一台小米手机,咱们来实现在电脑上抓包移动端的网络恳求。

东西

长这样:

详解如何实现移动端抓包网络请求

Charles是一个HTTP署理/HTTP监视器/反向署理,使开发人员能够检查其机器和互联网之间的一切HTTP和SSL/HTTPS流量。这包括恳求、响应和HTTP标头(包含cookie和缓存信息)。

charles 下载地址

检查网络恳求

首要确保电脑手机连接同一局域网,然后咱们将手机署理到电脑上:

检查电脑的 IP 地址

详解如何实现移动端抓包网络请求

打开手机当前 WLAN 的设置,署理挑选手动,主机名填写电脑的 IP,端口号填写 Charles 默认端口号 8888,当然你也可以手动设置(Proxy -> Proxy Settings)

详解如何实现移动端抓包网络请求

接下来就可以在 charles 中看到手机上的网络恳求了。

其他装备

网址署理

想要进行网址署理也很简单,点击 Tools -> Map Remote。

设置 Map From 和 Map To,这样就可以通过 host/ajax.html 拜访到 host/dom.html 了。

详解如何实现移动端抓包网络请求

HTTPS

由于 HTTPS 安全性更高,用 Charles 抓包时会出现乱码。

详解如何实现移动端抓包网络请求

解决办法:
首要设置 SSL,Proxy -> SSL Proxying Setting,增加:*:443

详解如何实现移动端抓包网络请求

然后点击 Help -> SSL Proxying,会有装置 Charles 证书的帮助,这儿以小米手机为例,挑选 Mobile Device。

根据 Charles 弹出的提示,用手机拜访 chls.pro/ssl 下载证书。

详解如何实现移动端抓包网络请求

小米(MIUI 13.0.7)证书装置方法:安全 -> 更多安全设置 -> 加密与凭据 -> 装置证书 -> CA 证书,然后挑选刚刚下载好的 Charles 证书装置,就可以正常抓包 HTTPS 的恳求数据了。