本文中使用的是mac上的抓包工具charles进行抓包,手机是apple11。
Charles 上的设置:
要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。
在 Charles 的菜单栏上选择 Proxy – Proxy Settings
点击进入如下界面
填入代理端口8888,并且勾上 "Enable transparent HTTP proxying" 就完成了在 Charles 上的设置。
iPhone 上的设置:
首先需要获取 Charles 运行所在电脑的 IP 地址。
如何获得 IP 地址:在 Charles 的顶部菜单的 Help – Local IP Address ,即可在弹出的对话框中看到 IP 地址。
在iPhone的“设置”–“无线局域网”中,可以看到当前连接的Wi-Fi名,通过点击右边的详情键,可以看到当前连接上的Wi-Fi的详细信息,包括IP地址,子网掩码等信息。在其最底部有 [HTTP 代理] 一项,将其切换成手动,然后填上Charles运行所在电脑的IP,以及端口号8888。
设置好之后,打开 iPhone 上的任意需要网络的程序,就可以看到 Charles 弹出 iPhone 请求连接的确认菜单,点击 【Allow】即可。
如下图所示,点入一个应用后,抓取到的http包:
完成以上步骤,charles会同时抓取手机以及电脑上的数据包,如果针对手机抓包可以通过取消勾选下图所示的选项屏蔽掉
手机连接不上charles的几种原因及解决方案:
1.确认手机跟电脑是不是在一个wifi环境下
2.可以尝试更换一下端口号(8888可能已经被占用)
3.可以通过电脑手动添加手机的ip
4.电脑有防火墙,尝试关掉电脑防火墙,在重新连接
抓取HTTPS数据包
首先是电脑端的配置,进入charles的Help->SSL Proxying->Install Charles Root Certificate
点击Install Charles Root Certificate之后,会弹出mac的钥匙串访问页面
右键点击该证书,选择菜单中的“显示简介选项”,接着进入信任栏目,将其全部置为“始终信任”
接着点击Proxy->SSL Proxy Settings,弹出如下页面
弹出的对话框中,勾选Enable SSL Proxying,然后点击add添加Host为*和Port为443,点击OK。
(此处将host设置为*的意思是主抓取全部的http是数据包,如果想针对某个域名抓取可以在此设置)
手机端配置,抓取iPhone设备上的HTTPS请求,需要在iPhone上也安装一个证书,在手机浏览器输入这个网址:http://charlesproxy.com/getssl
输入地址后弹出提示点击允许。
此时进入小程序,可以看到charles上能够看到https的接口的地址和数据了
charles抓包会出现,请求前都加了锁,具体地址为
未完待续......
️我是一个热衷分享测试干货的小测试
欢迎点赞 收藏、留言 如有错误敬请指正!
⛽️获取更多干货,可以关注公众号:软件测试开发区