Charles
Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量。
功能
- 抓取Http和Https的请求和响应
- 重发网络请求,方便后端调试
- 修改网络请求参数
- 网络请求的截获和动态修改
- 支持流量控制,可以模拟慢速网络以及等待时间较长的请求
- 支持本地映射和远程映射,比如你可以把线上资源映射到本地某个文件夹下,这样可以方面的处理一些特殊情况下的bug和线上调试
- 可以抓手机端访问的资源
手机抓包设置
第一步:设置charles为允许状态,并设置好接入端口;
- 菜单栏点击Proxy->Proxy Settings,填入代理端口8888,同时勾选“Enable transparent HTTP proxying”
- 点击Help->local IP Address 可以看到当前的本机IP地址,也可以在终端输入ipconfig可以查看本机的IP
第二步:把手机按照charles的IP和端口进行配置;
- 打开手机的wifi设置,选择跟电脑端同个局域网下的wifi点击查看详情,拉到底部看到HTTP代理这项,选择手动代理,填写上一步获取电脑端的IP及端口号8888。
第三步,手机配对成功后,charles弹窗询问是否允许,选择Allow;
Https抓包
第一步:安装证书;例如IOS,在手机Safari浏览器输入地址 chls.pro/ssl,出现证书安装页面,点击安装,iOS 10.3以上系统,需要在 设置->通用->关于本机->证书信任设置 里面启用完全信任
弟二步:菜单栏点击Proxy -> SSL Proxying Settings,勾选“Enable SSL Proxying”,再点击Add,Host填写:*,Port填写:443,再次抓包就可以看到https请求的具体内容了
重复发包repeat,可做压力测试
- 在要重复发包的请求上右键选择repeat advance
- 填写重复的并发线程数Iterations以及重发次数Concurrency,确定之后,即可开始重复发包。
修改服务器返回内容
- Map功能适合长期地将某一些请求重定向到另一个网络地址或本地文件
- Rewrite功能适合对网络请求进行一些正则替换
- Breakpoints功能适合做一些临时性的修改
凡事都有它的原因,决策才是最重要的