Charles是一款比较常用的全平台的网络封包街区工具,而我们在做移动开发的时候,我们为了调试、测试、分析等目的,经常需要和服务端的网络通讯协议打交道。Charles可以帮我们截取网络数据包来进行分析。
Charles通过将软件本身设置成系统的网络访问代理服务器,使得所有的网络请求都会走一边Charles代理,从而Charles可以截取经过它的请求,然后我们就可以对其进行网络包的分析。
用到的功能:

  • 1.截取http和https网络包
  • 2.支持重发网络请求,方便后端调试
  • 3.支持修改网络请求参数
  • 4.支持网络请求的截取以及动态修改请求响应结果。
  • 5.支持模拟限流网络

    1.Charles的基本界面



1.1.structure视图

structure视图将网络请求按请求的域名进行分类,将同域名的请求进行分类。

所有的请求是以域名进行分类显示的,可以让我们更关注同域名下的请求。当次域名下有接口连接被请求了,会闪一下,这样就可以让我们发现哪些域名下的数据正在被请求。

1.2.sequence视图

sequence视图模式下,会将所有的网络请求都按照访问的时间从上到下进行排序。

和structure一样,很直观的自暗示当前的请求连接、请求数据、响应数据等情况。因为这是按请求的先后顺序进行有序的排列,Charles同时也提供了一个过滤请求的地方,可以通过它来简单的过滤我们需要的请求再进行查看。

对于某一个具体的网络请求,Charles提供了详细的请求内容和响应内容,将发送的数据和显示的数据显示出来,对于一些常见的数据格式,Charles还提供了一些格式化的操作,例如json内容,可以切换到json标签下,它会按照json的格式进行格式化,方便我们阅读和查看,而图片的请求也会在Charles中显示缩略图的预览。

2.网页抓包

启动Charles后,需要将Charles设置为系统代理,选择菜单中proxy——MacOS来讲Charles设置系统代理。

然后你会发现,通过浏览器的请求都会被抓取。

3.截取移动设备的网络封包

Charles通常本身是可以直接截取本机上的网络封包的,但移动设备上的网络请求同样也需要去抓取,例如iPhone Android设备等。

3.1Charles对应设置

将代理功能打开,并设置一个固定的端口号。默认8888
proxy-proxy settings,查看当前或者修改当前代理端口,并保证Enable transparent HTTP proxying被勾选。

3.2手机上的设置

查看本机ip地址和Charles监听的端口号

方法1:使用help-local IP address

方法2: ifconfig en0

打开手机Wi-Fi,填入IP和端口号

3.3截取https的网络封包

app内使用https是非常常见的。正常情况下,Charles是不能截取到https的网络包的。这设计到https的证书问题。
使手机可以抓取到https协议,需要安装Charles的CA证书。
步骤:

  • 1.在Mac上安装CA证书。通过顶部菜单选择:help——SSL Proxying——install Charles Root Certificate,来安装CA证书。
  • 2.iPhone和Android手机,安装证书
    android手机请查看该帖
  • 3.在需要截取https的请求上,选择Enable SSL Proxying。

完成上面的步骤依然抓取不了https的网络包。主要的原因在于:CA证书需要被MacOs信任。
其他-钥匙串访问,查看CA证书

4.过滤

方法一:在Charles的菜单栏选择Proxy——recording settings,然后选择include栏,选择add,然后填入需要监控的协议,主机地址,端口号,如下图

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

5.模拟弱网

有时候在测试的时候我们想要模拟一下网络慢的情况,这时候Charles他是可以帮助到你的,在Proxy->Throttle Setting,然后选择Enable Throttling,在Throttle Preset下选择网络类型即可,具体设置你可以自行拿捏。

如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

6.修改网络请求

有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需要选中以往的网络请求,工具栏中点击 “Edit”,即可创建一个可编辑的网络请求。如下所示:

get
put
post
head
trace
delete
options

7.给服务器做压力测试

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下:
我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

8.断点

在Charles发起一个请求的时候,我们是可以给某个请求打一个断点的,然后来观察或者修改请求或者返回的内容,但是在这过程中要注意请求的超时时间。
要针对某一个请求设置断点,只需要在这个请求网址右击选择Breakpoints,然后点击断点按钮,就可以断点某一个请求了。

参考出处:http://blog.devtang.com/2015/11/14/charles-introduction/
https://testerhome.com/topics/15117

FAQ

1.乱码问题未解决

3.1以下版本,首先到去 http://www.charlesproxy.com/ssl.zip 下载CA证书文件。双击crt文件,选择总是信任就可以了。
https://www.cnblogs.com/mrjade/p/7677051.html

2.Firefox在添加*:443后不能连接网络的问题


安装CA证书后保存为.cer文件


firefoxs——首选项——隐私与安全——查看证书



再次访问百度,可以正常访问。

转载于:https://www.cnblogs.com/csj2018/p/9920399.html

Charles使用1相关推荐

  1. Charles抓取https请求

    最近公司将Windows产品的http请求,替换成https请求了,当https请求超过5次失败,就自动切换回http请求.测试时使用Charles抓包测试. 一.http抓包 http抓包比较简单, ...

  2. 强大的Charles的使用,强大的flutter1.9

    <a href="http://www.cocoachina.com/articles/37551?filter=ios"> 强大的Charles强大的flutter ...

  3. charles和Fiddler感觉哪个更好用

    1.fiddler还可以抓HTTPS的包,解析出来都可以 2.charles更直观,可能是我先用charles的缘故.charles遍历一个站点,可以右键另存,保存全站文件资源. 扒站首选, char ...

  4. 在iOS端如何使用Charles用作http调试

    转:http://blog.csdn.net/messageloop3/article/details/9966727 在iOS端如何使用Charles用作http调试 After noticing ...

  5. Charles抓包实战详解

    访问我的博客 前言 通过上一篇文章,想必你已经掌握了如何正确安装抓包神器 Charles,如果还是抓不了包,可以再看看. 今天要做是抓包实战,因为我在做网络文学的公司就职,所以就拿网络文学的 APP ...

  6. Yours的Ryan X Charles谈BCH驱动社交媒体

    "我们才刚刚开始要见证数字加密货币彻底改变世界经济的运作方式." 比特币中文站 2018/04/25 21:33 来源:cn.bitcoin.com 作者:Jamie Redman ...

  7. 代理工具Charles使用

    代理工具Charles使用 分类: MAC 2014-03-27 20:41 7810人阅读 评论(2) 收藏 举报 手机开发 一.跟踪HTTPS 1.下载官方的证书ssl.zip证书,解压成*.cr ...

  8. Charles抓取微信小程序数据 以及 其它应用网站数据

    为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...

  9. Charles 河畔的大圆顶

    近期,在MIT大学纳米实验室(MIT.nano)展示了一个6英寸硅圆晶片,上面刻蚀了MIT标志性大圆顶建筑.组成图案中的印记部分是由27万名从1861至2018年期间在MIT学习.工作的人员名单组成. ...

  10. charles 安装 ssl_前端开发如何使用抓包工具 charles

    抓包工具 https://www.charlesproxy.com/latest-release/download.do charles 官网 一. 安装 1. 下载 (自行根据系统下载对应软件) 打 ...

最新文章

  1. 选择排序之小白学算法
  2. 基于SOA的组件化业务基础平台[转]
  3. html5怎么设置字体闪动,HTML最简单的文字闪烁代码
  4. 作者:吴章生(1980-),男,中国科学院计算机网络信息中心工程师;张杨(1982- ),男,中国科学院计算机网络信息中心工程师...
  5. Flask常见问题记录
  6. python 数学计算库_数学计算工具库-Numpy
  7. 林德物料搬运公司成功案例:基于功能需求开发的软件模型质量保障
  8. 基于matlab的高等数学,基于matlab的高等数学实验详解.ppt
  9. Android同文输入法的使用(开源输入法Trime)
  10. 非线性视频编辑软件百科全书式介绍
  11. 水经注下载的地图版权_如何使用水经注万能地图下载器下载谷歌卫星地图
  12. Altium Designer禁止联网操作说明
  13. 怎么把视频压缩到最小的详解
  14. .计算机自动关机或重启,电脑自动关机或重启怎么治
  15. 【自然语言处理】【对比学习】搞nlp还不懂对比学习,不会吧?快来了解下SimCLR
  16. 笔记本计算机待机后显示器,Win10笔记本电脑休眠唤醒后屏幕还是黑屏怎么办?...
  17. unity微信分享及回调
  18. size和sizeof的区别
  19. java生成word带多级标题,word2007中多级标题的设置和目录的自动生成 | 学步园
  20. windows和ubuntu双系统安装笔记

热门文章

  1. Linux nginx搭建文件服务器
  2. ubuntu cpu频率控制
  3. springboot获取ApplicationContext的三种方式
  4. Linux date指令
  5. Lucene实现全文检索的流程
  6. C++中检查vector是否包含给定元素的几种方式
  7. Qt QWidget实现手势缩放和平移(二)
  8. 中、美、印、日四国程序员大比拼
  9. 外部中断0——51程序
  10. html 弹窗被拦截,window.open()弹窗被浏览器拦截的解决方法