工作的时候经常用Charles抓包,也学到了很多用Charles的很多小技巧,记录一下,说不定在某个时候就能提高自己的工作效率,让自己有多点时间摸鱼(bushi(但事实上是真的))
-
Structure/Sequence
这个是Charles请求列表的展示形式,可以选择自己习惯的形式-
Structure(结构)tab里的接口请求按照url维度放在不同的collection中
-
Sequence(顺序)tab里的接口请求按照请求时间分别展示
-
-
Focus
右键点击选中的url,点击Focus,会只展示当前url中的所有接口,其余接口url都会放在Other里
-
Ignore
选择请求-右键-Ignore,这个功能要慎用,点击后Charles不会对这个域名的请求抓包,如果要取消Ignore需要去Proxy-Recording Settings-Exclude里去取消勾选,然后重启Charles才能重新抓到这个url下的请求
-
Map Local
这个功能可以mock后端返回的接口数据,对想要mock的请求右键,点击Map Local,会出现下面这个弹窗,后续发出的请求数据要和Map From里的一致,响应的内容会和Map To选择的文件内容一致,如果不知道响应内容怎么写,可以对当前右键接口然后Save Response到本地,小修小改之后就能用了修改后的效果就像下图一样
-
Map Remote
Map Remote用来修改请求指向的地址,开发用的可能比较多,经常用于请求的时候指向本地/测试服务器,右键点击需要修改的请求,点击Map Remote,弹窗如下图展示,在Map To的地方输入需要指向的地址,后续的请求就会打到指定的服务器上
-
Breakpoints
Charles的断点工具,可以调整接口请求的内容和响应的内容,右键点击请求,再点击Breakpoints,后续发出这个请求Charles就会卡在这里
切换到Edit Request的页面中就可以修改这个请求发出的参数,修改完后点击Execute就会发出请求到服务器,接口响应回来之后就会出现这个页面
切换到Edit Response就可以修改接口返回的内容,再点击Execute就会把响应的内容返回到客户端,效果如下图
需要注意的是,如果前端设置了请求超时时间,Breakpoints如果在之中断点很长时间会导致前端超时
-
重发请求
选择请求,点击图片中的这个位置
可以修改请求的方法,url和参数
点击Execute之后就会发出新请求
-
节流设置
Charles的另一个功能就是可以限制请求的速度,来模拟弱网情况下的请求状态
点击菜单栏Proxy-Throttle Settings,勾选Enable Throttling,保存之后就会对所有请求限制请求速度。如果再勾选Only for selected hosts选项,会让弱网只对其中的url生效
一个小问题
最后有一个小问题,我在用Charles的时候在Proxy-Proxy Settings-macOS里勾选了Enable macOS proxy,在用的时候还可以抓到电脑的请求,但是关掉Charles之后再打开又抓不到电脑请求了,这是咋回事