charles
charles常用于网络抓包,常见用途有以下:
- 开发和调试过程有极大帮助,可以分析接口请求
- 篡改mock接口返回
- 本地代理调试开发
- 模拟慢速情况
- 做压测
- blocklist,使得某些请求失效
charles macos开启代理抓包(http)
去菜单栏Proxy -> macos Proxy ,记得打开即可实现抓本机的http请求,原理是这样,chares起了一个代理服务器,所有的请求都会经过这个代理服务器,可以去网络设置的proxy设置里面查看
charles macos转https的包
默认https的包会会出现unknow connect的字样,点击该请求,可以看到报错内容
SSLHandshakeException: Remote host closed connection during handshake
需要安装信任证书,路径在Help -> SSL Proxy -> Install Charles Root Certificate
安装后会打开证书设置页面,然后要将该证书进行信任操作,如果找不到,则可以在证书页面 -> Login 页面 -> 搜索charles -> always trust
tips: 有一些情况下会出现上述办法https仍然抓不到的情况,可以尝试破解完成后再安装一次,或者网上也有方案说把电脑的时间改到一天后,可以试试
charles技巧
模拟慢速情况
菜单栏 Proxy -> Throttle setting
同时这里支持筛选,只慢速部分接口,可以勾选Only for selected hosts,然后添加网址,添加网址可以保持为空或者*则查全部
篡改mock接口返回
在该请求右击鼠标,点击Breakpoints,则下次再次请求该request会中断该请求,如下图
有3个按钮,
- abort,模拟这个接口不返回的情况
- execute,修改mock接口返回,点击则可以去Edit Reques和Edit Response,这里我们编辑一下百度html返回的title,加一个test
再次点击execute
同理,我们可以Edit Request,都可以mock了
也有一个管理所有Breakpoints Settings的地方,在Proxy -> Breakpoints Settings,可以添加任何url的breakpoint
本地代理调试开发
举个例子,我们有一些本地的代码,想要直接映射到线上的网站去进行调试,则可以使用Map Remote和Map Local的功能。而且我们可以利用文件夹的效果,可以两个目录对应上后,后面的树状结构的文件和文件夹都能一一对应上。
blocklist
有些时候我们需要测试网络出错的情况,这是可以使用blocklist。开启路径在Tools -> Black List。原理就是劫持请求,返回403或者返回直接丢掉请求
可以添加规则,对指定的url才进行block
左下角的Import 和Export都是charles通用的url路径匹配规则。
压测
可以针对某个request进行repeat操作,右击,即可出现repeat和repeat advanced操作,也可以去Tools -> repeat和Tools > repeat advanced,