Charles 使用教程
Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information)
Charles是一个HTTP代理/ HTTP监视器/ 反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量,这包括请求,响应和HTTP标头(包含cookie和缓存信息)
Charles
主要特点
- SSL代理 - 以纯文本格式查看SSL请求和响应
- Bandwidth Throttling模拟较慢的Internet连接,包括延迟
- AJAX调试 - 以树或文本形式查看XML和JSON请求和响应
- AMF - 以树形式查看Flash Remoting / Flex Remoting消息的内容
- 重复请求以测试后端更改
- 编辑测试不同输入的请求
- 用于拦截和编辑请求或响应的断点
- 使用W3C验证器验证记录的HTML,CSS和RSS / atom响应
本篇文章操作均基于Charlers 4.2.8版本,及 macOS 10.14.5 版本
安装
- Windows:略
- macOS:略
下载地址:官方Charles
激活
有能力,请支持付费支持正版~
有能力,请支持付费支持正版~
有能力,请支持付费支持正版~
仅供个人学习研究和交流使用,请勿用于任何商业用途。
Charles ——> Help ——> Register Charles…
1 | Registered Name: https://zhile.io |
激活密钥来自知了
配置
配置流程
- 获取操作系统网络IP地址
- 修改客户端网络IP连接
- 在操作系统及客户端上安装证书
- 设置SSL代理
以上配置要求,操作系统(Windows,macOS)及客户端(Android,iOS)连接在 同一WiFi网络
获取系统 IP
不管是是 Windows 系统还是 macOS 系统都可以通过 Charles 来获取,获取方式 Help
——> Local IP Address
Windows
使用命令行查看网络 IP 地址 ipconfig
macOS
- 使用命令行查看网络 IP 地址
ifconfig en0
- macOS系统设置查看IP 地址
System Preferences
——>Network
查看监听端口
Proxy
——> Proxy settings...
客户端设置
要求手机网络与 PC 网络同链接在一个路由器网络下,这样手机的请求都将通过 PC,因此在 Charles 上可以看到手机上的网络请求。
手机上安装下面的步骤请看下面的详细介绍,安装完证书,Charles 将会收到提示,进行允许即可
Android
-
修改网络配置选项
-
导入Charles证书,使用浏览器打开 www.charlesproxy.com/getssl 或 http://chls.pro/ssl,下载证书,并进行安装
iOS
-
修改网络配置选项
-
导入Charles证书
-
证书授权
模拟器
Charles设置
- Install Charles Root Certificate
完成客户端的设置,我们此时再对 Charles 进行设置,首先我们先进性安装 Charles 证书,Help
——>SSL Proxying...
——>Install Charles Root Certificate
- 添加证书
- 证书授权设置
- SSL Proxy settings
- Host:为需要过滤的域名地址,
*
表示不过滤 - Port:固定为443,
*
表示任意端口
- Host:为需要过滤的域名地址,
抓包
不废话,请看图
- Structure:视图将网络请求按访问的域名分类
- Sequence:视图将网络请求按访问的时间排序
客户端请不要开启其他代理
进阶
过滤网络请求
- 方法一:在上面抓包的截图中,已经讲过,适用于 临时型 对请求进行过滤
- 方法二:
Proxy
——>Recording settings
——>include
,适用于 经常性 请求过滤
Map 功能
设置本地映射
指的是将网络请求重定向到本地的文件,适用于开发过程中,把线上的静态资源映射到本地,这样可以方便调试并及时查看效果,确定无误后再发布到线上环境
设置远程映射
指的是将网络请求重定向到另一个网络请求地址,适用于开发过程中,需要将请求重定向到其他的服务上
重复发送网络请求
可以更加需要重复一次或多次的请求,对于多次的请求可用于服务器的压力测试
常见问题
- Charles无法抓取到客户端网络请求
- 查看你的客户端网络设置,是否正确
- 查看你的客户端和 Charles 是否是处于同一网络环境
- Charles 无法抓取 Https 网络请求
- 查看你的客户端和 Charles 是否安装证书,并设置终是允许
- 网络请求及网络响应信息中文乱码
- 如果需要抓本地应用(即拦截电脑上的应用接口),请确保你未开启翻墙代理软件
附录
- Charles Document
- Charles抓包的安装,使用说明以及常见问题解决
- 抓包工具Charles的使用心得
- Charles抓包https