Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。
一般在不知道抓的是哪个url时,采用Structure ,如果要map local、map remote之类的或者需要筛选只显示某一个接口时,采用Sequence
抓取请求:
首先查看本机ip,点击Help->LocalIP Address,如下即为本机的ip地址
将手机和电脑连在同一网,电脑有线连接也可以;然后在手机上该WiFi处添加代理,主机名即为电脑的ip,端口默认是8888,然后点击保存。也可以进行修改端口,在charles上的Proxy->Proxy settings,如下位置进行修改即可,其他项暂时不用管
如果Charles上的端口改变了,手机上的也要改变,总之:手机和电脑要连接同一个网,并且手机上代理的主机名和端口分别是电脑的ip和电脑上Charles的端口
之后Charles上会显示有设备连接,拒绝/同意,点击同意
然后在手机的浏览器里输入charlesproxy.com/getssl,进行下载证书并安装
然后手机上即可对相应app进行操作,会发现还是显示unknown,这是因为未加入SSL proxying,此时在charles的Proxy->SSL Proxying->Add,添加相应的host,host即为刚刚出现unknown的链接,Port统一写443,保存即可,勾选后表示该请求会抓取完整的信息
启动app,进行相应的点击操作,并且查看Charles上哪一处出现了新的请求
备注:
1.抓https协议的,必须要在手机上装证书和在Charles上加ssl proxy
2.下载手机证书时,需要将电脑上的防火墙关闭
3.手机上的主机名和端口一定要跟Charles所在的电脑保持一致
查看请求:
点击相应的请求,查看右端的Contents中的header和JSON Text,如下图:
headers里为头信息,最下面的Json Text为返回的结果。下方的Headers为返回结果的基本信息:
比如接口返回是否是200,proxy-connection为长连接连上的状态
如果出现错误,接口返回就是404或者5XX。此时将Overview里的url复制出来给开发
如果要查看详细的请求时间和大小等信息,点击Overview即可:
charles进一步详细讲解请见下一篇