Charles简介
Charles 是在 Mac/PC下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10秒种的延时。但是网上有**办法,下文安装部分会提供教程。
- Charles主要功能
- 截取 Http 和 Https 网络封包。
- 支持重发网络请求,方便后端调试
- 支持修改网络请求参数
- 支持网络请求的截获并动态修改
- 支持模拟慢速网络
Charles安装
Charles官网最新版是4.1.3,**不了,目前能**4.1.2,4.1.2版本的windows64位在我百度云盘百度云盘下载链接可以下载,或者在网上找4.1.2版本,官网上好像不提供下载了,本文以Windows系统为例来讲解安装过程。
下载完软件,一步一步根据指引来安装,这就不讲了。安装完成后来讲讲**,先下载**工具,百度云盘下载链接 ,提取密码:pav7。
里面包含了windows32、windows64、和mac系统三种版本的**工具。下载完了,解压zip文件得到charles.jar文件,将这个文件复制到Charles安装目录下/jre/lib目录下,在我的电脑上路径是这样的D:\Program Files\Charles\lib,覆盖这个目录下的charles.jar文件。
然后打开Charles,点击”Help”->”About Charles”,会弹出一个框,下面出现”Registered to: ** By 小宇殿下”字样,这就说明**成功了,不会使用30分钟就自动关闭了。
Charles简单使用
手机连接代理
打开Charles,点击菜单”Proxy”->”Windows Proxy”将Charles设置成系统代理,保证Windows系统是有网线连接的,连接WiFi是无法使用Charles抓包的。
然后就是手机上连接代理,下面以Android手机为例介绍一下过程。打开Android手机”设置”->”WLAN”,连接上WIFI,然后长按你连接的WIFI(不同手机可能操作不同),弹出一个操作菜单,选择”管理网络设置”,勾选”选择高级选项”,点击”代理服务器”下面的选择框,选择”手动”。
然后有两个地方需要填:一个是”代理主机名”, 就是你电脑的ip地址,可以通过命令行ipconfig获取到,也可以打开Charles,点击菜单”Help”->”Local IP Address”, 弹出一个框来,选择第一行的IP地址,即手机上要填的代理主机名;
另一个是代理服务器端口号,Charles默认是8888端口,这个端口号在Charles上可以找到,点击Charles菜单”Proxy”->”Proxy Settings”->”Proxies”, HTTP Proxy下面的Port就是要填的端口号。
配置好了点击保存,然后才会生效,再就是打开Charles,手机开始请求网络,这时候Charles会弹出一个确认框,让你授权开始抓取你手机上的HTTP请求,点击同意开始抓包。
Charles软件简单使用
Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。
Structure 视图将网络请求按访问的域名分类。Sequence 视图将网络请求按访问的时间排序。
大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。
截取Https通讯信息
现在https逐渐风行起来了,由于大公司推广https,很多app网络请求都换成https的,要抓取app的网络请求就复杂一些了,如果不设置的话,抓到的请求数据都是乱码的。
要抓取https请求就要安装Charles的CA证书,首先在电脑上安装证书,点击Charles菜单”Help”->”SSL Proxy”->”Install Charles Root Certificate”, 会弹出一个框来,点击”安装证书”,然后点确定,证书就安装好了。如果你要抓取某条https请求,点击改https请求,右击,选择”Enable SSL Proxy”,然后这个host下的所有请求都可以抓到了。
其次要在手机上安装证书,点击Charles菜单”Help”->”SSL Proxy”->”Install Charles Root Certificate on a Mobile Device or Remote Browser”, 然后会弹出一个框来,是手机安装证书的简单教程,手机浏览器中访问地址:http://chls.pro/ssl,即可打开证书安装的界面,安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。
总结
好了,介绍了Charles的安装和基本使用,要抓包这些基本上够用了,当然Charles还有很多高级功能,进阶使用下次再写。非常感谢唐巧的博客,参考链接