• Charles常用技能


    简介:Charles是一款用于HTTP信息抓包工具,可以快速有效的获得HTTP信息,非常利于开发者的网页开发和调试修改等!Charles 有着可视化的操作界面,非常利用编辑者的使用和调试!

    推荐下载地址:https://xclient.info/s/charles.html(内附解压方法)

    一. 常用功能:

    • 抓取 http 和 https 的请求和响应。
    • 重发网络请求,便于后端调试。
    • 修改网络请求参数(客户端向服务器发送的时候,可以修改后再转发出去)。
    • 网络请求的截获和动态修改。
    • 支持模拟慢速网络,主要是模仿手机上的2G/3G/4G的访问流程
    • 支持本地映射和远程映射,比如你可以把线上资源映射到本地某个文件夹下,这样可以方便的处理一些特殊情况下的bug和线上调试(网络的css,js等资源用的是本地代码,这些你可以本地随便修改,数据之类的都是线上的环境,方面在线调试)
    • 捕获移动端请求。

    二. 界面介绍:

    三. 抓取pc端请求

        打开charles → Proxy → macOs Proxy即可。

    四. 抓取手机请求

      1).设置charles端口,并且勾上【Enable transparent HTTP proxying】

    2)手机连上和charles所在电脑同局域网内的wifi,设置无线的【HTTP代理】→ 手动 → 填写服务器(charles所在电脑的ip地址)以及端口号(第一步设置的charles的 HTTP PROXY的端口号)

    3)配置成功后,charles会有弹窗询问是否允许,选择【Alllow】即可抓取。

    五. 筛选

    如果只需要抓取某类接口,方法有二

             1. 使用focus筛选某类域名,可直接在Focused Hosts中Add添加;也可在左侧列表中,右键选择Focus,使用此方法添加的域名也可在Focused Hosts中查看

               

        2.Proxy → Recording Settings → includes 配置想要筛选的接口。

     

    六. pc抓取https请求

       1)下载,安装,并选择始终信任该证书。

     2)Add 添加 Host设置为*,或者你想要抓取的域名,Port设置为443或者*。

           勾选上 Enable SSL Proxying 即可抓取所有域名https请求。

           如果只想抓取某个域名下的https请求,也是在这里配置哦~

    七. app抓取https请求

     1)先操作【六. pc抓取https请求】中的第一步,pc端安装证书

     2)手动设置手机wifi代理之后,浏览器访问【chls.pro/ssl】,访问后会自动跳转,提示下载描述文件,下载完成并安装。

     3)ios还多了一步:安装完成之后,设置信任该文件。

        3.1)设置中,找到下载的文件,并安装

        3.2)通用→ 关于本机 → 证书信任设置→ 找到对应的证书开启信任按钮

    注意:小米手机 Charles安装证书失败: 使用第三方浏览器下载确定下载路径, 设置→更多设置→系统安全→从存储设备安装→选择文件 ✅

    补充:1. 手机浏览器访问【chls.pro/ssl】下载证书,下载不下来或者安装后依然无法抓取https,可直接载pc保存charles跟证书(charles窗口->帮助→SSL设置→保存charles跟证书(save charles root certificate)),再通过其他通讯方式传给手机,比如wx,qq

    2.小米和华为手机:找到设置里的【系统安全/安全和隐私】->(更多安全设置)→ 从SD卡安装->用户凭据中可查看

    八. Breakpoints 断点

    设置断点,可以手动编辑请求参数及响应数据。

    1)Proxy ——>Breakpoint Settings ,勾选Enable Breakpoints,填写需要增加断点的接口,query可设置为*,以及设置要编辑的是request还是response。

    2)出来了使用1)中的方式手动增加,也可在列表中直接右键选择需要增加断点的请求。使用该方法添加的请求,可以在【Proxy —>Breakpoint Settings 】中编辑。

    3)使用1)或者2)的方法增加断点后,重新发送请求。点击【Edit Request】进入编辑。

    在【Edit Request】中,可以编辑请求参数,cookie等。

    可以操作cancel(取消),abort(中止),Excute(执行)。操作Excute进入response,待接口返回,编辑response。

    4)Edit Response.可以在这里查看以及编辑返回的数据。

    像图下,返回账号停用,我们可以把已有的数据模板,直接粘贴覆盖返回的内容,接口就可以拿到我们更改后的数据啦。

    九. Map Remote 远程映射

    如果本地没有数据,或者脏数据较多,可以使用该方法拿到线上接口返回的数据,返回至本地。

    1)Proxy —> Map Remote 进入Map Remote,勾选Enable Map Remote 进行添加和编辑要设置远程映射的域名。

    2)除了使用1)中的方法,也可以直接在接口列表中,右键选择Map Remote。使用2)添加的接口在1)中的页面可以进行编辑。

    3)如下图,把测试环境的请求,替换成线上的请求,替换并发送成功,可以看到有【MMapped from remote URL:http://xxxxx】

     

    但是有个问题,此时在测试环境或者本地环境请求线上数据,接口都是有token验证的,会返回如下图所示。那么该怎么解决呢?

     

    要解决token问题,这个时候就用到了【八. Breakpoints 断点】增加断点,编辑cookie。拿到线上域名的token替换测试环境的token即可。

    【需要注意的是,要在我们实际要发出的【线上请求】上增加Breakpoints】

    十. Map Local 本地映射。

    自测过程中,没有足够的数据,或者没有合适的状态的数据,可以使用map local本地映射任意修改我们想要的数据哦~

    1)Proxy —> Map Local 进入Map Local,勾选Enable Map Local 进行添加和编辑要设置本地映射的域名。

    2)除了使用1)中的方法,也可以直接在接口列表中,右键选择Map Local。使用2)添加的接口在1)中的页面可以进行编辑。

    3)选中后,右键 【save response】将原接口返回数据保存值本地,并修改出自己想要的结果。重新发送请求即可。

    【问题】我自己就是这样操作的时候总是报错。让朋友帮忙试了下,可以操作。可能是我本地的环境有影响,暂时未找到问题所在。有同学知道的话,还请赐教呀~~~

     

    常见问题:

    1.contents乱码

     

     原因:即不可抓取https请求导致的

    解决方案:同【六. pc抓取https请求】【七. pc抓取https请求】

    2.Charles激活码:

    Registered Name: https://zhile.io

    License Key: 48891cf209c6d32bf4

    一点一滴累积,总有一天你也会成为别人口中的大牛!
  • 相关阅读:
    数据库课程设计心得【3】存储过程的运用
    看BBC研究大脑的科教片中“放松产生灵感”的笔记
    成功干掉“恶心的U盘自动运行病毒免疫目录”!共享方法,让更多的人干掉这东西!
    分享一大堆最新dot net asp.net c# 电子书下载 , 英文原版的。经典中的经典
    SQL学习之 对GROUP BY 和 HAVING 的理解 学习笔记
    关于Theme中.skin与css需要理清的关系
    最近的学习笔记,记录一些通俗易懂的学习类文章。更像是好资料参与索引。
    关于DNN Module开发学习以来的一点总结
    工具发布!QQ空间阅读与备份工具
    被忽视的大道理
  • 原文地址:https://www.cnblogs.com/fancyLee/p/11989758.html
Copyright © 2020-2023  润新知