charles
文章目录
- charles
- 前言
- 一、安装
- 0.证书配置与安装
- 二、Charles页面菜单介绍
- 2.1 File菜单
- 2.2 Edit菜单
- 2.3 View菜单
- 2.4 Proxy菜单
- 2.5 Tools菜单
- 2.6 Window菜单
- 三、预览模式
- 1.Structure 结构预览模式
- 2.Sequence 顺序预览模式
- 3.Overview(概述)
- 四、好用的小功能
- 1.Highlight Rules (高亮显示)
- 2. Focused Hosts(专注host设置)
- 3.Black List和Allow List(黑名单和白名单)
- 4.抓接口然后调用测试
前言
在日常开发中,我们无法看到应用程序与服务器之间发送和接收的内容,没有这种可见性,我们在确定故障的确切位置时会非常困难且耗时。而 Charles 是一个可以同时运行win和mac在 PC 上的 Web 代理,我们将应用程序配置为通过 Charles 访问网络,便可以在 Charles 上记录并显示发送和接收的所有数据,进而可以大大提高调试程序的效率。
从下图可以看出 Charles 的角色:
Charles 有以下几个常用功能:
● 请求预览:通过分组或序列视图预览和过滤请求数据;
● 请求抓包:抓取 HTTP 和 HTTPS 的请求数据和响应数据;
● 请求断点:拦截指定的请求或响应,预览中间的数据;–Breakpoints断点功能
● 数据修改:修改请求数据和响应数据以配合数据测试;
○ Compose功能修改Request
○ Rewrite重写功能
● 请求重发:指定请求重复发送,以测试后端功能和性能;–Repeat 重试功能
● 网速模拟:设置网速延迟,模拟手机上 2G/3G/4G 网络;–Throttle弱网测试
一、安装
Charles 是收费软件,有 30 天的免费试用期限,之后每使用 30 分钟会被强退一次,重启后可继续使用。从Charles 官网可以获取 Charles 安装包,Charlse是一个付费软件,需要使用注册码注册后,才可以长期使用。
Registered Name:https://zhile.io
License Key: 48891cf209c6d32bf4
0.证书配置与安装
0.1电脑端证书安装
1)点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate 】安装Charles根证书即可;
2)点击安装证书 -> 本地计算机 -> 将所有证书都放到下列储存 -> 点击下一步完成即可
3)设置HTTP/HTTPS协议端口
Proxy -> SSL Proxying Settiongs 在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】
添加以下Host和Port
1. *:*
2. *:443
3. *:80
解释:
在Host输入【*】表示接收任何主机
80是http协议的默认端口
443是https协议的默认端口
4)打开抓取web端设置
Proxy -> Windows Proxy 勾选中即可
5)访问 www.baidu 能够抓取到接口并且接口下有数据表示成功
注意:如果接口下抓取是unknown表示失败
- 协议未配置
- 证书未安装
- 防火墙未关闭
0.2手机端证书安装
App抓包
Charles抓包不仅仅可以抓取来在电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下并且手机VPN也需要关闭
1)端口号设置 Proxy -> Proxy Setting 默认端口号 8888
2)查看自己IP地址和端口号和下载证书网址
Help -> SSl Proxying -> Install Charles Root Certificate on a mobile Device or Remote Browser
3)手机端设置:
1,打开手机的设置页面;
2,选择【无线局域网】;
3,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)
4,点击【配置代理】–>【手动】;
5,输入本机【IP地址】以及【端口号】,根据自己情况合理配置;
6,点击【存储】
4)检验代理配置是否成功
打开浏览器验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装
抓取手机HTTPS协议
通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,需要安装配置证书才可以,现在手机上大多数都已经切到https很少由http协议的了
5 )Charles配置:
手机打开浏览器输入 chls.pro/ssl,如下提示,点击允许(如果下载失败,请更换浏览器重新再下)
设置-已下载描述文件-安装
关于本机-证书信任设置-打开信任
最后,重新打开charles,手机访问网页/app就可以了
注意事项:
手机和电脑需要在同一网络下
手机VPN需要关闭
不同电脑对应不同证书,所以说你连接其他电脑需要重新下载手机证书
如果抓出来的接口显示Unknown可以把防火墙关闭,再打开charles重新抓取
二、Charles页面菜单介绍
2.1 File菜单
New Session:开启一个新会话,可以新建一个会话页面,这样可以在不同的会话页面抓取不同页面的数据包
Open Session:打开保存的会话文件
Clear Session:清除会话内容,会清空已经抓取到的数据包
Close Session:关闭会话
Save Session:保存会话
Save Session As:会话另存为
Import:导入会话信息
Export Session:导出会话信息
2.2 Edit菜单
Cut:剪切
Copy:复制
Paste:粘贴
Select All:选中当前会话页面的所有请求
Find:可以在制定的范围内查找关键字内容
Preferences:界面样式及字体等设置
2.3 View菜单
Structure:查看该视图
Sequence:查看该视图
Overview:HTTP/HTTPS请求的概要信息
Request:请求的详细内容
Response:服务端根据请求返回的数据内容
Summary:汇总请求包括哪些资源,耗时及数据包大小信息
Chart:请求包括的资源耗时分析
Notes:日志信息
View Request As:以怎样的方式查看请求
View Response As:以怎样的方式查看服务端返回的内容
2.4 Proxy菜单
Start/Stop Recording:开始/停止捕获;
Start/Stop SSL Proxying:开始/停止抓取HTTPS数据包;
Start/Stop Throttling:开始/停止节流;
Enable/Disable Breakpoints:启用/关闭断点;
Recording Settings:监听设置;
SSL Proxying Settings:抓取https数据包的设置;
Throttling Settings:模拟各种网络环境设置,包括:3G、4G等场景;
Breakpoint Settings:断点设置;
Reverse Proxies:反向代理设置;
Port Forwarding:重定向功能;
Windows Proxy:设置为系统代理;
Proxy Settings:代理的设置;
Access Control Settings:访问控制设置;
External Proxy Settings:外部代理设置;
Web Interface Setting:Web界面设置
2.5 Tools菜单
No Caching:禁用缓存,不从缓存中访问;
Block Cookies:禁用Cookie,默认针对所有请求,也可以针对指定请求;
Map Remote:远程映射;
Map Local:本地映射;
Rewrite:重写请求;
Block List:黑名单列表;
Allow List:白名单列表;
DNS Spoonfing:DNS欺骗设置;
Mirror:镜像设置;
Auto Save:自动保存设置;
Client Process:客户端进程设置;
Compose/Compose New:修改请求;
Repeat /Repeat Advanced:一次重发/高级重发
2.6 Window菜单
Session *:切换会话窗口,如果有多个会话的话,这里就会显示多个会话列表
Error Log:显示程序的错误日志
Active Connections:显示处于未关闭状态的连接请求
从左至右,依次为:
1.清除当前会话
2.停止/开始记录
3.开始/停止抓取HTTPS数据包
4.开始/停止限流
5.开始/停止断点
6.根据所写内容撰写新请求
7.重发选定请求
8.验证选定响应
9.工具
10.设置
Charles 启动后,就运行在抓包模式。灰色停止录制,红色亮起则录制中。
由于 Charles 会自动配置 PC 浏览器的代理,所以,随意打开一个网页(只要有网络请求即可)即可预览到请求信息。
注意:如果使用插件为浏览器设置了独立代理,请关闭插件或者设置成系统代理。
Charles 提供了 Structure 和 Sequence 两种预览模式。
三、预览模式
1.Structure 结构预览模式
- 以域名划分请求信息
- 可以清晰看到请求的数据结构
如果网址太多可以通过Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
2.Sequence 顺序预览模式
- 以数据请求的顺序执行,即请求越快显示越前
- 可以清晰看到全部请求
在此模式下,可以使用 Filter 过滤请求,针对性分析。图示如下:
在两种模式下,都可以通过切换标签(Overview、Request、Response、Summary、Chart、Notes 等)预览不同类型的请求信息。在最常用的 response标签下,还可以通过切换子标签(Headers、Cookies、Text 等)预览对应标签详细内容。图示如下:
3.Overview(概述)
四、好用的小功能
1.Highlight Rules (高亮显示)
可以设置高亮显示的规则
入口:View-》Highlight Rules
效果:
2. Focused Hosts(专注host设置)
设置后在Structure查看
入口:View-》Focused Hosts
Host:"babytree*"代表host中含有”babytree“字符的所有host
Protocol:http或者https
Port:protocol为http时填80,protocol为https时填443,不填也没关系
抓包结果,不在上一步配置中的接口,都会隐藏在Other Host中
效果:
3.Black List和Allow List(黑名单和白名单)
tools-black list
tools-allow list
4.抓接口然后调用测试
选中接口,右击接口,选择copy cURl request
使用postman导入该接口
更多推荐
【Charles入门】
发布评论