From:https://www.cnblogs.com/wenjun145/p/12995535.html

1、下载安装

1. 下载地址:https://www.charlesproxy.com/latest-release/download.do

2. 下载之后安装。按照默认next 即可,然后选择路径。

3. charles 。PJ:https://www.zzzmode.com/mytools/charles/

按照下方文字填好,点击生成,会生成一个 jar 包,这个 jar 包是本地 lib 中已经存在的,将它替换。

再次重启即可。。。

2、安装证书

在弹出的 证书窗口中 ---> 安装证书 ---> 本地计算机 ---> 证书存储( 浏览 )---> 手信任的根证书颁发机构 ---> 下一步 ---> 完成

  • http 代理:菜单栏 Proxy ----> 勾选 "Windows Proxy" ,抓取电脑本地发送的请求,展开相关域
  • https 代理:菜单栏 Proxy ---> SSL Proxying Settings ---> 勾选 "Enable SSL Proxying" 。
        允许所有SSL代理:Add ---> Host : * 和 Port : 443  。这样设置就可以使得所有带锁请求允许被操作

移动端配置

  • 查看 Charles 端口:Proxy ---> Proxy Settings ---> Port:8888,勾选 "Enable transpare proxying"
  • 查看电脑 IP:Help ---> Local IP Address
  • 手机端 WiFi 配置:WiFi ---> 修改网络 ---> 代理 ---> 然后输入电脑IP、端口(代理端口8888)
  • 返回 Charles,界面弹出连接 IP 提示,点击 Allow ---> 完成配置

设置好代理后,需要安装 charles 的 证书,安装好证书后,才能解密 https 的流量。。。

3、Charles 基本功能

Charles 工具的几个重要按钮:

  • 扫帚 图标:清屏
  • 圆点 图标:抓包 / 停止抓包
  • 锁 图标:开始 / 停止  SSL 代理
  • 乌龟 图标:模拟弱网络( 流量控制 )
  • 六边形 图标:断点
  • 钢笔图标:构造一个请求,然后发送,即模拟请求
  • 刷新 图标:重新发送选中的请求
  • 对勾:
  • 工具 图标:一些工具。断点,映射,篡改,DNS 洪泛
  • 设置 图标:设置

界面 Structure 模式( 按域名网站显示 ):

  • 以域名划分请求信息,便于定位需求分析和处理的数据
  • 请求的数据结构一目了然
  • 关键字段:Overview 即 概要, Contents :即 内容

Sequence 模式( 按请求顺序显示 ):

  • 以数据请求速度快慢的顺序去执行,请求快的就在前面显示,可以清晰的看到全部请求,以及请求中的资源请求、图片、文本、音乐等。其中,Filter 可以过滤请求

过滤抓取请求

开始抓包后,随着时间的推移,抓取到的网络包越来越多,这是我们可以使用过滤功能,来过滤出我们想要的网络请求。

Proxy -> Recording Settings 中可以设置网络包的过滤选项。

过滤选项中有Include 和 Exclude 两种选项。只有当 Include 为空时,Exclude 中的设置才会生效。过滤条件支持通配符。

模拟慢速网络

在做iPhone开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles对此需求提供了很好的支持。

Charles的菜单上,选择"Proxy"->"Throttle Setting"项,在之后弹出的对话框中,我们可以勾选上“Enable Throttling”,并且可以设置Throttle Preset的类型。如下图所示:

修改网络包

修改历史请求

可以将历史的请求修改后,再次发送。

只需选中某个请求,点击上方工具栏中的蓝色钢笔按钮(第四个),就可以进行修改。完成修改后,点击下方的Execute执行请求。

添加断点

窗口上方的工具栏中,第四个按钮就是Enable BreakPoints,用来启用或禁用断点。也可以在 Proxy -> BreakPoints Setting中设置更多具体内容。

Charles中可以像调试程序一样添加断点。方法是右键点击左侧窗口的某个请求,选择BreakPoints添加断点。这样当这个请求发出或者收到response的时候,就会先被Charles拦截下来,并触发断点。

触发断点后,可以对断点的网络包进行各种编辑,然后再继续。点击Execute就可以继续。

同时,也可以在Proxy -> BreakPoints Setting设置断点的各种规则。例如,是在request的时候触发还是 response的时候。

由于设置断点时,Charles是先拦截下整个网络包,再触发断点,当网络包比较大的时候,常常会导致应用超时,触发网络错误的警告,因此,自动地根据规则修改网络包有时显得尤为重要。这就是下面要说的篡改。

拦截后可以修改post参数

然后可以修改Response,不用去麻烦测试修改数据,

设置断点。在请求位置右键,选择Breakpoints

然后选择Proxy的Breakpoint Settings选项,点击进入设置

点进去可以看到我们添加到Breakpoint 的所有请求,双击我们要改的那个请求,如果想断请求,勾选Request,想断响应,勾选Response

设置后点击OK,关闭上面的弹窗,下面的弹窗中我们勾选想断的请求,点击OK

下次请求就可以断请求或者响应了

改写后点击 Execute执行 ,注意改的时候,客户端一般有超时限制(过了超时时间就不会等服务端的返回数据了),所以一般只适用改动较小的测试或者异常测试

篡改(Rewrite)

Rewrite 是按照一组事先设置的规则,篡改特定的网络包中的数据。

在 Tools -> Rewrite 中,选中Enable Rewrite 来开启 Rewrite

Rewrite

勾选 Debug in Error Log 选项,就能在 Charles 控制台中看到 Rewrite 的记录。

首先要在右侧的规则列表中添加一个新规则。在新规则中添加要RewriteLocation,然后再下方添加具体的篡改规则。规则中可以使用通配符。

这样稍后匹配条件的网络包到达的时候,Charles就会自动将其中的内容按规则篡改。

示例:比如 192.168.1.2:8888/a/b/test  与192.168.1.3:8888/a/b/test  两个请求就要分别映射,而 Rewrite 就可以解决这个问题 ,可以把所有的请求url为/a/b/test的请求都构造成同一个数据。

方法:

  • 1、入口:Tools-》Rewrite
  • 2、勾选 Enable Rewrite,点击Add
  • 3、Name根据自己情况随便写,Add后Path路径填写我们请求的url,点击OK

然后Add返回值,选择response,Type选择body,直接把要构造成的json串写到Value中,Ok

下次请求,就会发现192.168.1.2:8888/a/b/test  与192.168.1.3:8888/a/b/test  两个请求都返回了我们自己的json数据。

rewrite还可以批量修改我们的请求参数,比如把所有的上传的did参数都由ANDROID_4af16d720602b56改为ANDROID_123456123456,我们可以按照下图构造:

其中上面部分具体内容为:

下半部分具体内容为:

这样下次请求,我们的did参数就变为我们想要的ANDROID_123456123456了。这种方法对  有要求手机等为新设备才执行某策略的功能点很适用。

映射 Map

Charles 提供的映射功能可以将本地文件或者远程的服务器作为某个请求的 Response。可以方便地进行一些特殊的测试。

  • Map Local。本地映射。在 Tools -> Map Local。可以选择一个本地文件作为某个请求的Response,并且 Charles会帮你封装好Response
  • Remote Remote。远程映射。和本地映射的功能类似,只是将数据源换成了远程服务器。相当于将请求交给另一个服务器处理

在主机名上右键,选择 map remote

在弹出的弹窗中,填写要映射到的地址

映射本地。在一个请求上 右键 ---> 选择map local

模拟弱网

Charles 还可以模拟不同网速环境,可以很方便地测试应用在网络差的情况下的bug。

Proxy -> Throttle Settings 中勾选 Enable Throttling,或者直接点击窗口上方的工具栏中的  乌龟

charles 简单使用相关推荐

  1. 抓包工具Charles简单使用介绍(可抓取Android中app的请求)

    摘自: 作者:Roy_Liang链接:http://www.jianshu.com/p/5539599c7a25 Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安 ...

  2. 使用 Charles 简单解决微信开发者工具网络连接失败的问题

    Charles安装网址https://www.charlesproxy.com/ 安装 Charles 然后启动一下就行了.此时再启动微信开发者工具就可以扫描二维码了(此法仅供参考,不能保证一定有效) ...

  3. 使用 NGINX 作为 HTTPS 正向代理服务器

    这里写目录标题 1. 使用 NGINX 作为 HTTPS 正向代理服务器 1.1. HTTP/HTTPS 正向代理的分类 1.2. 为什么正向代理处理 HTTPS 流量需要特殊处理? 1.3. NGI ...

  4. charles的简单使用

    charles使用 charles 工具介绍 charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows, ...

  5. 简单说下HTTP代理、HTTPS代理、SOCKS代理的原理区别,charles抓包HTTPS原理

    采用PROXY代理方式通讯时,都是客户只TCP/IP连接到代理,客户只和代理通讯.  代理和目标进行TCP/IP通讯,代理需要先有PROXY信息,才能知道目标服务器的地址. HTTP代理最简单!因为H ...

  6. charles 抓包图片显示_charles 抓包简单使用

    教你简单使用charles 抓取app 里的数据(一般多为http协议) 常用的抓包软件有很多,mac 上的charles ,wireshark 等都是不错的抓包工具,今天就简单介绍一下如何安装,如何 ...

  7. charles 过滤器-简单过滤和设置过滤

    charles 过滤器-简单过滤和设置过滤 一.简单过滤 二.设置过滤 一.简单过滤 二.设置过滤 打开位置 点击add添加要抓取的域名信息 排除筛选(操作和选择筛选一样)被指定的域名会被排除掉不会抓 ...

  8. 最简单的Charles抓包https教程

    这里介绍charles抓包教程,亲测可行 一.背景 对于我司app都是使用的https网络请求,但开发中需要快速定位问题,因而对https请求抓包有非常高的依赖性.如果不对https做别的处理,抓包就 ...

  9. Charles 的简单使用

    1.下载并安装charles 官方下载地址:https://www.charlesproxy.com/download/ 当前最新版本是4.6.3 选择合适的安装包进行下载(windows.msi.m ...

最新文章

  1. R语言导入SPSS文件实战
  2. 外卖市场的搅屎棍要来了?字节跳动内测“心动外卖”!
  3. java读取excel2010文件_java如何读写excel2010
  4. php邮箱验证laravel接口,Email认证 | Laravel 中文文档 - 码农教程
  5. POJ - 2342 Anniversary party(树形dp入门)
  6. Pipeline Alpha版本项目展示
  7. VB案例:泸职院教师评学评价表计算程序
  8. C# 窗口大小及屏幕分辨率操作
  9. NGUI系列教程五(角色信息跟随)
  10. python direct_Python-RabbitMQ-direct(广播模式)
  11. 一体机or复合机?企业文印设备该怎么选
  12. IDEA离线安装maven helper插件
  13. Java开发人员2021年的职位描述和职责
  14. Linux电驴客户端,全面介绍Linux安装电驴
  15. linux notifier的理解和应用
  16. RegSVR32 找不到指定模块问题解决
  17. 【软件下载】Excel下载 word下载 官方 官网下载 原始镜像 开发工具 开发软件下载
  18. 推荐系统组队学习之概述
  19. python定积分1002无标题_python 求定积分和不定积分
  20. 3.1 Linux 支持的文件系统类型

热门文章

  1. 聊聊如何提升推荐系统的结果多样性
  2. 前端工程化开发方案app-proto
  3. 论文浅尝 | LGESQL: 结合线性有向图以及普通有向图的自然语言转换SQL语句模型...
  4. 论文浅尝 - ACL2020 | Segmented Embedding of Knowledge Graphs
  5. 各种损失函数比较-带你斩获offer
  6. 国科大高级人工智能3-DNN(BM/RBM/DBN/DBM)
  7. (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  8. 让引擎不再是你的唯一,对百度再见
  9. -Block和JSON
  10. 【笔记】Windows Phone 8开发笔记之API