前言
软件开发中,我们有时需要监控接口的请求和响应,或者篡改服务器返回的数据,以满足客户端的测试需求,在不麻烦别人的前提下,这时我们就可以使用Charles进行监控、抓包、改包等操作。
配置
安装Charles
TIPS: 示例中用的是v3.9.3版本
安装后,如下图:
设置HTTP代理
- 让电脑和手机处于同一局域网内(手机连接电脑分享的无线网络也不行)
- 修改手机连接的无线网配置-设置HTTP代理
- 服务器:可以在电脑上查看连接的无线网IP
-
端口:8888
监听请求
一般用法(监控网络请求)
配置好代理,打开Charles,打开需要监听的程序,这时Charles有可能会弹框,点击同意即可。界面如下图:
我们可以查看请求概况、request、response等信息。
Tips:默认是
Sequence
(顺序)显示网络请求,这样可以看到请求顺序,但是无法直观地显示某个站点下的接口汇总,所以我使用Structure
(结构、分类),如下图:
高级用法(篡改请求和响应)
言归正传,说重点。想要在请求时,修改请求和响应信息,就需要给请求打个
Breakpoints
(断点)
添加断点
进入断点
-
当给某个接口添加断点后,再次请求接口,就会进入断点,如下图:
-
这时我们可以执行取消(
Cancel
)、终止(Abort
)、跳过(Execute
)操作。- Cancel: 想当于没有打断点
- Abort:终止请求,此时会请求失败(可能出现的错误信息:Request aborted by breakpoint)
- Execute:执行过断点,接着往下执行请求
篡改Request
-
通过断点,我们可以修改Request信息,如下图:
这时我们可以修改请求头信息
篡改Response
-
通过断点,我们可以修改Response信息,如下图:
这时我们可以修改接口返回的json数据,一般情况下就不再需要麻烦服务端修改代码以配合我们测试了。
TIPS
- 可以给某个接口添加断点,也可以在域名上添加断点,此时该域名下的所有接口都将被断点。
- 不使用Charles时,建议关闭手机上的代理,否则手机联网有可能会出现问题,比如微信只会显示文字,加载不出来图片等等。。。