之前一直在用fiddler,但是感觉fiddler使用过程中兼容不是很好,特别是抓取HTTPS和iOS10.0以上的手机的时候,HTTPS抓取出来的内容经常是乱码,iOS10.0以上的HTTPS抓取不成功,证书设置均正常。所以试了下Charles,感觉Charles抓取出来的内容更清晰更详细,所以记录下,仅个人观点和个人喜好。
参考文章:http://blog.csdn.net/f20052604/article/details/50867019
一、Charles安装及设置
1、官网下载Charles对应版本,如果正常抓包使用则不需要安装破解版,直接官网下载安装可用
下载地址:https://www.charlesproxy.com/download/
2、直接安装即可使用,安装过程无需设置
3、https证书安装,证书是不被信任的,在电脑上安装的还是一定记得选择安装的证书位置为受信任的根证书目录,否则不可用
4、设置抓包域名,一般设为*:443即可抓取对应域名的请求
5、安卓手机链接好代理后,访问chls.pro/ssl下载证书
注意:在证书下载好后有的手机可能不会弹出自动安装,需要手动安装下载的证书,以华为手机为例在“设置->高级设置->安全->找到从SD卡安装证书”,将证书安装好。
6、iOS手机需安装对应证书:
a、如未自动安装Charles根证书则先在hepl->ssl proxing->Install Charles root certifitace直接安装根证书
b、重启Charles,链接手机
c、safari访问https://chls.pro/ssl下载安装HTTPS证书(注不同电脑安装的Charles根证书不一样,如同一台手机要在不同电脑上抓包需要分别安装对应的Charles证书在手机端,即Charles手机端的证书不能通用)
d、手机访问请求,可以抓取到对应请求详细内容
二、添加Charles断点
1、用Charles抓包发起一次接口请求
2、对要打断点的接口右键,选择【Breakpoints】
三、Charles断点设置
1、点击Charles菜单-【Proxy】-【Breakpoint...】,此时会弹出【BreakpointsSettings】对话框
2、双击【Location】内的接口地址,此时会弹出【Edit Breakpoint】对话框
3、在【Query】项输入:*
4、如果我只需要修改返回的参数,就只勾选【Response】
四、修改接口返回值
1、再次发起接口请求,此时会弹出下面的对话框
2、点击【Edit Response】,修改返回的报文
3、点击底部的【Execute】将修改后的报文返回