第一章.Charles说明
Charles通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。第三章将以iPhone为例,讲解如何进行相应操作;
Charles是在Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
除了在做移动开发中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析Https协议。
Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为Charles强制关闭而遇到影响。
Charles主要的功能包括:
①截取Http和Https网络封包。
②支持重发网络请求,方便后端调试。
③支持修改网络请求参数。
④支持网络请求的截获并动态修改。
⑤支持模拟慢速网络。
第二章.Charles下载
去Charles的官方网站(http://www.charlesproxy.com)下载最新版的Charles安装包,是一个dmg后缀的文件。打开后将Charles拖到Application目录下即完成安装。
第三章.Charles上的设置
要截取iPhone上的网络请求,我们首先需要将Charles的代理功能打开。在Charles的菜单栏上选择“Proxy”–>“Proxy Settings”,填入代理端口8888,并且勾上“Enable transparent HTTP proxying”就完成了在Charles上的设置。如下图1所示:
图1第四章.Charles上Ip设置
首先我们需要获取Charles运行所在电脑的IP地址;
图2Charles 的顶部菜单的 “Help”–>“Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图3所示:
图3第五章.Iphone上IP设置
1、在iPhone的“设置”–>“无线局域网”中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有「HTTP代理」一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888,如下图所示:
图4
2、设置好之后,我们打开iPhone上的任意需要网络通讯的程序,就可以看到Charles弹出iPhone请求连接的确认菜单(如下图所示),点击“Allow”即可完成设置。
图5第六章.截取Https通讯信息
1、安装证书
如果你需要截取分析Https协议相关的内容。那么需要安装Charles的CA证书。具体步骤如下。
1.1.在电脑上安装证书
点击Charles的顶部菜单,选择“Help” –> “SSL Proxying” –> “Install
Charles Root Certificate”,然后输入系统的帐号密码,即可在KeyChain看到添加好的证书。如下图所示:
图6安装以下证书
图71.2.在手机上下载证书
其次我们需要在手机上打开默认浏览器,在浏览器中输入http://charlesproxy.com/getssl,进行下载SSL证书。
注意:
即使是安装完证书之后,Charles默认也并不截取Https网络通讯的信息,如果你想对截取某个网站上的所有Https网络请求,可以在该请求上右击,选择SSL proxy,如下图所示:
图8第七章.Charles界面说明
Charles主要提供两种查看封包的视图,分别名为“Structure”和“Sequence”。
1、Structure视图将网络请求按访问的域名分类。
2、Sequence视图将网络请求按访问的时间排序。
大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles提供了一个简单的Filter功能,可以输入关键字来快速筛选出URL中带指定关键字的网络请求。
对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是POST的表单,Charles会自动帮你将表单进行分项显示。如果响应内容是JSON格式的,那么Charles可以自动帮你将JSON内容格式化,方便你查看。如果响应内容是图片,那么Charles可以显示
图9出图片的预览
网友评论