美文网首页
charles详解及使用

charles详解及使用

作者: 时光不说话 | 来源:发表于2022-05-12 14:56 被阅读0次

    一、基础

    1、Charles简介

        中文名青花瓷,是HTTP服务代理器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接受的所有数据。她允许开发者查看所有连接互联网的HTTP通信。
    
        特点:跨平台、有免费版本(启动需要10s、运行只能使用半小时)
    

    2、Charles工作原理


    使用前置条件:
        1、运行Charles并配置代理
        2、在客户端配置代理和代理端口
    使用步骤:
        1、客户端发送请求
        2、Charles接受情况再发送给服务器
        3、服务端返回请求结果给Charles
        4、由Charles转发给客户端
    

    3、Charles主要功能

    支持HTTP和HTTPS的代理
    支持流量控制(用于模拟弱网)
    支持接口并发请求(用于简单的性能测试)
    支持重发网络请求(用于接口测试,用的比较少)
    支持断点调试功能(发送或接收时修改请求/返回信息,模拟请求和响应)
    

    4、Charles优点

    相比fiddler:
        1、支持多系统
        2、支持按域名和按接口查看报文
        3、支持反向代理
        4、支持网络限速、选择网络类型
        5、可以解析AMF协议——不常用
    

    二、安装


    1、Charles安装

        下载:[https://www.charlesproxy.com/download/](https://www.charlesproxy.com/download/)
    

    2、安装证书


    3、Charles组件学习


    三、代理设置

    1、 Charles开启代理
    Proxy → Proxy Settings
    1)端口号,默认8888,如果有冲突,则需要修改
    2)点击OK ,打开代理

    2 Windows代理设置 ——设置后就能用charles抓取windows上的数据
    1、chrome 浏览器输入Chrome://seetting ,在搜索栏中输入【代理】,点击【打开您计算机的代理设置】
    2、在打开的Windows代理设置页面中,打开【使用代理服务器】,并填写代理服务器地址及端口号即可(即 charles所在机器的ip和端口号)。

    备注:如果charles和客户端在同一台电脑,默认情况下电脑上已经设置好代理了;如果charles和客户端不在同一台电脑,一定要把电脑上的代理服务器地址改为charles所在电脑的ip和端口号。

    3、MacOs代理设置 ——设置后就能用charles抓取MacOs上的数据
    3.1 常规设置代理方式

        1、系统偏好设置 → 网络 → 高级 → 代理 
        2、勾选【Web代理(HTTP)】 → 输入web代理服务器地址和端口 (即 charles所在机器的ip和端口号)
        3、勾选【安全Web代理(HTTPS)】 → 输入web代理服务器地址和端口
    

    3.2 MocOs快捷代理设置
    在Charles的Proxy → macOS Proxy

    备注:如果charles和客户端在同一台电脑,快捷代理可以代替代理设置。

    tips:快速查看Charles所在服务器的ip地址: 【Help → Local Adress】

    四、PC端抓HTTPS包

    https是把http进行了封装,把http的报文进行加密了。
    不配置的话,能显示https域名,但请求为unknown,报文内容都是乱码。
    解决方案:安装SSL证书

    Windows抓取https配置
    1、Windows安装证书


    2、 macOS抓取https配置


    3、Charles中https代理配置


    五、手机端抓包

    手机端配置:
    1、确保iOS 设备和Charles服务器在同一个网络下
    2、在设置中选中无限局域网 → 网络 → HTTP代理 → 配置代理 → 手动
    3、输入Charles服务器的i和端口号 并存储

    1、IOS系统设置代理——设置后就能用Charles抓取iOS上的数据:



    2、Android系统设置代理 —— 设置后就能用Charles抓取Android上的数据

    手机端配置:
        1、确保iOS 设备和Charles服务器在同一个网络下
        2、设置 - WLAN - 显示高级选项 - 代理 -手动
        3、输入Charles服务器的i和端口号 并存储
    

    如果设置后无法抓到https包,则需要安装一下手机端证书

    华为手机安装证书如下:
    1、浏览器中输入chls.pro/ssl提示下载证书
    2、在【设置 - WLAN 更多->高级WLAN设置->安装证书 】安装后,证书的用途选择【VPN和凭证】,不要选择【WLAN】亲测不行。
    3、安装成功后即可抓取https包

    六、流量配置

    1、Proxy → Throttle Setting
    2、勾选 Enable Throttling
    3、选择对应的网络类型

    Bandwidth ——带宽  -- 例如 512kbps
    Reliability   ——可靠性
    Stabillith    —— 稳定性
    

    弱网一般用于app测试,看app在弱网情况下会不会闪退、登出等异常。

    带宽一般指下载的理疗速度
    512kbps(kbps=kb/s)=512/8=64KB/s
    1M=1024/8=128KB/s
    8M=8*1024/8=1024KB/s

    七、断点配置(用于编辑请求参数、编辑请求返回值)

    1、选择接口,右键 - 选择“BreakPioints”
    有的请求后面有随机数,设置断点后因为随机数不同,可能断不到,此时在【Proxy → BreakPioints Setting】中编辑一下请求,把随机数去掉即可
    2、在浏览器中访问这个接口
    3、进入断点页面,展示接口请求的信息,此时请求还未发送到服务器
    4、“Edit Requset” 编辑请求信息
    5、点击“Execute” 执行请求
    6、执行后,接口的返回数据也会展示在charles中,不会直接返回浏览器
    7、“Edit Response” 编辑服务器的返回信息
    8、点击“Execute”,把修改后的返回信息,反馈给浏览器,在浏览器中就能看到自己编辑的返回信息



    遇到的问题

    问题1、用着好好的,突然有一天无法抓包了
    问题原因:charles证书过期了
    help→SSL Proxying → Install Charles Root Certificate


    22年5月使用时发现charles不能用了

    解决办法:
    1、PC端reset证书、再信任即可
    help→SSL Proxying → Reset Charles Root Certificate
    2、手机端需要连接到代理、重新下载安装证书、信任证书后使用

    相关文章

      网友评论

          本文标题:charles详解及使用

          本文链接:https://www.haomeiwen.com/subject/nensurtx.html