前言:
Charles是在 Mac 下经常使用的网络封包截取工具,在作移动开发时,咱们为了调试与服务器端的网络通信协议,经常须要截取网络封包来分析。浏览器
1、主界面介绍
2、网页抓包
启动 Charles 后,须要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “macOS Proxy” 来将 Charles 设置成系统代理。以下所示:服务器
这样你会发现,你经过浏览器请求的网址都会出如今这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。以下图:
3、手机抓包
Charles 上的设置:
要截取 iPhone 上的网络请求,咱们首先须要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,而且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。以下图所示:网络
iPhone 上的设置:
首先咱们须要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”–>“Local IP Address”,便可在弹出的对话框中看到 IP 地址,以下图所示:
在 iPhone 的 “ 设置 ”–>“ 无线局域网 ” 中,能够看到当前链接的 wifi 名,经过点击右边的详情键,能够看到当前链接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,咱们将其切换成手动,而后填上 Charles 运行所在的电脑的 IP,以及端口号 8888,以下图所示:
设置好以后,咱们打开 iPhone 上的任意须要网络通信的程序,就能够看到 Charles 弹出 iPhone 请求链接的确认菜单,点击 “Allow” 便可。
固然若是要抓取iPhone设备上的HTTPS请求,须要在iPhone上也安装一个证书,在手机浏览器输入这个网址:
http://charlesproxy.com/getssl ,点击安装便可。
4、过滤
在 Charles 的菜单栏选择 Proxy->Recording Settings,而后选择 Include 栏,选择Add,而后填入须要监控的协议,主机地址,端口号,这样就达到了过滤的目的。以下图:
还有一种方法就是在一个网址上右击,选择Focus,而后其余的请求就会被放到Other Hosts的文件夹里面,这样也达到了过滤的目的。
5、模拟慢速网络
有时候在测试的时候咱们想要模拟一下网络慢的状况,这时候Charles他是能够帮助到你的,在Proxy->Throttle Setting,而后选择Enable Throttling,在Throttle Preset下选择网络类型便可,具体设置你能够自行拿捏。
若是咱们只想模拟指定网站的慢速网络,能够再勾选上图中的 “Only for selected hosts” 项,而后在对话框的下半部分设置中增长指定的 hosts 项便可。并发
6、修改网络请求
有些时候为了调试服务器的接口,咱们须要反复尝试不一样参数的网络请求。Charles 能够方便地提供网络请求的修改和重发功能。只须要选中以往的网络请求,工具栏中点击 “Edit”,便可建立一个可编辑的网络请求。以下所示:
7、给服务器作压力测试
咱们可使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法以下:工具
咱们在想打压的网络请求上(POST 或 GET 请求都可)右击,而后选择 「Repeat Advanced」菜单项,以下所示:
接着咱们就能够在弹出的对话框中,选择打压的并发线程数以及打压次数,肯定以后,便可开始打压。
8、断点
在Charles发起一个请求的时候,咱们是能够给某个请求打一个断点的,而后来观察或者修改请求或者返回的内容,可是在这过程当中要注意请求的超时时间。测试
要针对某一个请求设置断点,只须要在这个请求网址右击选择Breakpoints,而后点击断点按钮,就能够断点某一个请求了。
以上网站