【Charles入门 mac版】

charles



前言

在日常开发中,我们无法看到应用程序与服务器之间发送和接收的内容,没有这种可见性,我们在确定故障的确切位置时会非常困难且耗时。而 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
参考:https://www.zzzmode.com/mytools/charles/

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.com 能够抓取到接口并且接口下有数据表示成功
在这里插入图片描述

注意:如果接口下抓取是unknown表示失败

  1. 协议未配置
  2. 证书未安装
  3. 防火墙未关闭

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导入该接口

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值