charles全面使用教程及常见功能详解(较详细)

主要功能:

  1. 抓取http和https请求
  2. 修改服务器返回内容
  3. 修改网络请求
  4. 模拟弱网络
  5. 其他问题

简介

Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。

Charles 主要的功能包括:

截取 Http 和 Https 网络封包。

支持重发网络请求,方便后端调试。

支持修改网络请求参数。

支持网络请求的截获并动态修改。

支持模拟慢速网络。

1. Charles安装

前提先安装配置好Java环境,官网下载安装Charles:https://www.charlesproxy.com/download/

Charles共享账号: Name: https://zhile.io; Key: 48891cf209c6d32bf4

Charles安装证书:

image.pngimage.png

2. HTTP抓包

(1)查看电脑IP地址

方法一: 打开”运行”(快捷键:win+R键;或者在任务栏的”搜索”按钮中查找并点击”运行”),输入“cmd”后进入命令行窗口,在命令行窗口中输入”ipconfig”命令查看IP 

方法二: 在charles中查看 :Help -> Local IP Address

(2)Charles代理设置

接下来打开Charles的代理设置:Proxy->Proxy Settings,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying。

(3)Charles设置Proxy代理

Proxy -> SSL Proxying Settings... 勾选Enable SSL Proxying,点击Add,点击Add,Host设置要抓取的https接口,  

Host : * (使用通配符表示检测所有网络请求;Port:443)

比如想抓所有接口的内容,Host填写:*,Port填写:443

image.png

完成以上操作,就完成Charles抓取HTTP(S)数据包的所有配置了。

(4)手机端设置

在手机设备、模拟器或者远程浏览器上设置代理,抓取手机设备上的请求包(手机和电脑必须在同一个局域网内,并关闭电脑防火墙、其他代理或者翻墙软件)

第一步:在手机wifi 上设置代理 -> 长按无线网络-->修改网络-->高级选项-->代理 手动-->手动输入输入IP、端口号

服务器IP:PC机器的IP(通过之前介绍的查看IP的方法)

image.png

第二步:Charles弹出询问“allow”或者“deny”,点击“allow”按钮允许;出现手机的HTTP请求列表

image.png

第三步:如果修改相关配置后,没有出现上面截图信息,可在设置中加入自己手机的IP,如下图:

image.pngimage.png

第四步 安装证书

  • 抓取https数据需要在手机上安装证书,HTTPS的抓包需要在HTTP抓包基础上再进行设置;
  • Help -> SSL proxying -> Install charles root certificate on a Mobile Device or remote browser…

出现弹窗得到地址chls.pro/ssl

  • 在手机自带的系统浏览器输入地址chls.pro/ssl,出现证书安装页面,点击安装,手机设置有密码的输入密码进行安装。安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。
  • 注意2:iOS 10.3系统,需要在设置→通用→关于本机→证书信任设置里面启用完全信任Charles证书

3.Charles 主界面介绍

主要是会话的两种视图模式以及对应的 requet/response 面板组成:

Structure视图

Sequence视图

Structure:树状结构显示,将网络请求按访问的域名分类;

Sequence:水平结构显示,将网络请求按访问的时间排序

Structure视图模式下,列表会按照域名来归类所有请求,而Sequence视图则是按照请求发生的顺序来展示;如果不习惯Sequence默认的上下视图,可以修改为类似Fiddler的左右视图模式(有更符合眼睛的习惯):快捷键 cmd+,->Charles Preferences->Viewers选择Sequence view layout为Tall即可;

常用的功能:

Save response: 保存response数据到文件中,方便后面用于重定向功能map local...;选择多条记录后再右键就会有Save All...可以方便的把所有response信息一次性导出到某个目录中,然后通过map local...结合通配符来批量重定向请求;

Export: 可以将选中的多个会话信息完整导出成文件(*.chls),通过File - import来导入chls文件,方便不同开发人员进行调试或者现象复现分析;

repeat advanced...: 可以重发次数以及并发数,用于进行简单的服务器压测,

Filter : 过滤,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求

Overview : 查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。

对于Size也详细列出了请求头大小、响应头大小、压缩比例等内容。 

URL:进行网络请求的链接;

Status:当前状态,complete表示请求完成;

Responce Code:返回码。不同的接口,不同的请求结果,返回码都不同;

Protocol:使用的协议;

Method:请求方式,如GET请求,POST请求等;

Kept Alive:判断当前是否正在链接(活跃);

Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送;

Client Address:客户端的IP地址;

Remote Address:远程服务器的IP;

Timing: 

Request Start Time:请求开始的时间;

Request End Time:请求结束的时间;

Response Start Time:返回开始的时间;

Response End Time : 返回结束的时间;

Duration : 总时间;

Size: 

Request Header :请求的头部大小;

Response Header:返回的头部大小;

Request : 请求发送的大小;

Response:返回数据的大小;

Total:所有数据大小;

Request Compression : 请求压缩;

Response Compression : 返回压缩;

Request : 查看请求内容(底下的Headers,Query String,Cookies,Raw。)

Headers:发送请求的头部信息;

Query String : 发送参数列表;

Cookies: 浏览器缓存;

Raw:发送的原生数据,包括了头部和参数;

Reponse : 查看响应内容

Headers:是返回的头部信息;

Text:返回信息(除去头部)后的文本;

Hex:返回信息的16进制表示;

XML:我返回的数据是XML。如果你返回的是JSON,这里就会显示JSON;

XML Text:如果你返回JSON,这里会显示JSON Text;

Raw:返回的所有原生数据,包括头部;

Summary: 查看发送数据的一些简要信息(主机,状态码,数据的类型,header和body大下,加载时间,总时间)

Chart: Summary中简要信息以图表形式展示

Notes: 其他信息

抓包接口测试需要了解下相关HTTP状态码所对应说明

4.菜单

4.1Proxy 菜单

这个用得比较多,在这里设置跟踪捕捉过滤功能:

Proxy菜单

4.2过滤( Recording Settings )

Recording Settings 

设置会话捕捉条件,include 面板用于启用/停止可以捕捉/显示的会话;

exclude 表示不显示的会话,在会话列表中右键选择 ignore 时,对应的url会出现在这里;

record_setting_add

比较好用的是过滤条件支持通配符,*表示任意多个字符,?表示一个字符,如Protocol中有http,https和 "",选择空白或者输入*都可以表示任意协议的请求;

也可以通过主界面底部的Filter来简单设置过滤条件,不支持通配符

image.png

filter

还有一种方法就是在一个网址上右击,选择Focus,然后其他的请求就会被放到一个叫Other Host的文件夹里面,这样也达到了过滤的目的。

4.3模拟网络环境(Throttle Settings)

4.3.1弱网设置throttle_settings

  • 在这里选择要模拟的网络环境,也可以自定义指定的url进行网络环境(勾选only....),通过该功能,模拟不同的网络带宽、延时率、丢包率。

image.png

  • 弱网菜单介绍

image.png

  • 配置参数解析:

   bandwidth —— 带宽,即上行、下行数据传输速度

   utilisation —— 带宽可用率,大部分modern是100%

   round-trip latency —— 第一个请求的时延,单位是ms。

   MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。

   Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。

   Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。

5.断点功能

  1. 方法:
  • 在会话列表中右键点击某个会话,然后在菜单中选择Breakpoints;
  • 通过Proxy-Breakpoint settings...中手动新建/启用某个断点;
  • 要求勾选enable breakpoints,之后当下次再有该请求时,会自动进入断点模式;
  • 对断点进行设置

image.png

修改请求后发送

image.png

6.常见问题解决

1 . 手机无法抓包的问题

检查是否配置好代理IP,端口号

检查是否与电脑在同一个局域网

检查是否关闭防火墙,代理,翻墙软件

弹出询问点击“allow”或者“deny”时,误点“deny”,关闭charles重启,手机再次浏览则会重新弹出询问

2 . 解决request和response信息中的中文乱码问题

方法一 :修改charles windows版本安装目录下也有一个Charles.ini的配置文件 

修改后的配置文件 添加-Dfile.encoding=UTF-8即可。image.png

通过以上方法就可以解决Request和Response的中文乱码问题了。

3.设置代理后,浏览器打不开网页

浏览器--设置--打开代理设置--局域网设置--去除代理服务器下图选项后-确定

image.png

  • 38
    点赞
  • 329
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
要使用Charles进行代理,首先需要下载并安装Charles软件。可以在官方网站或者破解版下载链接上获取最新版的Charles安装包。下载完毕后,将安装包中的dmg文件打开,并将Charles应用程序拖动到Applications文件夹中。这样就完成了Charles的安装。 安装完成后,打开Charles应用程序。在菜单栏中选择"Proxy",然后选择"Proxy Settings"。在弹出的窗口中,勾选"Enable macOS Proxy",然后点击"Apply"按钮。这样就将Charles设置为系统代理了。 接下来,需要在设备上进行一些网络设置。在iOS设备上,打开设置,选择Wi-Fi,找到当前所连接的Wi-Fi网络,点击右侧的"i"图标。在下拉菜单中,点击"Configure Proxy",然后选择"Manual"。在"Server"字段中输入你的电脑的IP地址以及Charles的代理端口(默认为8888)。完成后,点击"Save"保存设置。 在Android设备上,打开设置,选择Wi-Fi,找到当前所连接的Wi-Fi网络,长按并选择"修改网络"。在弹出的窗口中,勾选"高级选项",然后选择"代理"。选择"手动",并输入你的电脑的IP地址以及Charles的代理端口(默认为8888)。点击"保存"保存设置。 现在,你已经完成了Charles的设置。可以在Charles的界面中查看到设备发送和接收的网络请求。还可以使用Charles的各种功能,如拦截请求、修改请求和响应、模拟慢速网络等等,以帮助你进行调试和分析。 此外,如果你需要使用Charles的共享账号进行注册,可以使用以下账号信息:Name为https://zhile.io,Key为48891cf209c6d32bf4。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [charles使用教程](https://blog.csdn.net/fm15136/article/details/124171901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [charles全面使用教程常见功能详解(较详细)](https://blog.csdn.net/m0_37787904/article/details/100563263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值