Charles抓包(未完待续)
Charles是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles 主要的功能包括:
- 截取 Http 和 Https 网络封包。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 支持模拟慢速网络。
主界面介绍
Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。
- Structure 视图将网络请求按访问的域名分类。
- Sequence 视图将网络请求按访问的时间排序。
截取http请求,修改请求内容、返回内容
(例如要抓取进入http://bj.58.com的请求,并修改服务器返回的内容)
打开charles,点击开始录制按钮,打开浏览器,在网址处输入地址,回车,在进入charles,我们就看到抓取到了这个请求
选中此请求,右键,选中断点。
打开浏览器,重新刷新http://bj.58.com这个界面,charles自动弹出breakpoints这个tab页,说明charles成功拦截了此请求,我们可以在此界面修改请求,然后点击execute将修改后的请求发送至服务器
服务器处理请求后,发送response给客户端,charles自动拦截此response,如下,我们可以修改Edit Response的内容,修改服务器返回的内容,如下,我们修改了返回的界面某个内容展现,再点击execute,将此response成功返回给客户端。
打开浏览器,可以看到返回的界面内容被修改成功