一、Charles是什么?

Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不行的抓包工具,在平常的测试与调式过程中,掌握此工具就基本可以不用其他抓包工具了。

二、为什么是Charles?

为什么要用抓包工具?大家在平常移动App调试测试中是如何进行抓包的?

在我们做开发与测试的过程中,总免不了碰到网络问题,特别是重后台的产品,这个时候我们往往的处理方法是抓个网络包,看看到底应用发送和接收了些什么鬼.....这个时候Charles上场了;Charles是一款屌的不行的截包工具,好用到没朋友。

那么Charles屌在哪里呢???主要特点如下:

1.支持SSL代理,可以截取分析SSL的请求

2.支持流量控制。可以模拟慢速网络(2G,3G),以及等待时间较长的请求。

3.支持AJAX调试。可以自动把JSON或者XML数据格式化,方便查看。

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

5.支持修改网络请求参数。

6.支持网络请求的截取和动态修改。

7.最重要的一个优点就是有不同平台的版本(Mac,Windows、Linux)即学一个打遍天下。

三、Charles基本工作原理

charles是通过网络代理来进行抓包的,下面先了解一下http代理的原理:

1.普通http请求过程

•一般情况下的HTTP请求与响应:

2.加入了Charles的HTTP代理的请求与响应过程

 

中间的代理服务器就是Charles

四、Charles的下载与安装过程

1.官网下载地址:

http://www.charlesproxy.com/download/

2.Mac下安装:

是一个安装包是一个dmg后缀的文件。打开后将Charles拖到Application目录下即完成安装。

在Mac下你打开Launchpad即可看到一个像花瓶一样的Charles程序图标

3.Windows下安装:

下载后直接双击根据安装向导一步一步安装即可

五、Http抓包操作步骤

Step 1:开启Charleshttp代理;

Step 2:手机端Wifi添加代理;

Step 3:开启Charles录制功能;

Step 4:启动应用开始抓包;

Step 5:分析抓取的数据包。

Step 1: 开启Charleshttp代理

a.设置Charles代理

第一次启动默认会开启本机的系统代理,因为我们只是监控移动端的所以将此选去除(去掉选项前面的小钩)

a.激活http代理功能

Step 2: 手机端Wifi添加代理

a. Android手机:

1.在手机端打开你的Wifi设置然后长按已经连接的Wifi在弹出来的菜单中选择【修改网络】

2.沟上[显示高级]选项--【手动】

3.输入代理服务器的IP与端口,IP即安装了Charles的电脑IP地址,端口就是前面一步设置Charles时所设置的端口。

注意:手机所连接Wifi要与电脑在同一个LAN(局域网)。

b. iOS手机:

1.点击你所连接的wifi

2.输入代理服务器的IP与端口,

IP即安装了Charles的电脑IP地址,端口就是前面一步设置Charles时所设置的端口。

注意:手机所连接Wifi要与电脑在同一个LAN(局域网)。

Step 3:开启Charles录制功能

1.当手机连接上代理后Charles会弹出相应的提示框,点击Allow即可。2.点击工具栏上的开始录制按钮,即启动了Charles的抓包功能了。

Step 4:启动应用开始抓包

1.在手机上操作相应的App进行抓包。2.在Charles的主界面上就可看到相应的请求内容。

Step 5:分析抓取的数据包

1.Charles 主要提供两种查看封包的视图,分别名为 “Structure”和 “Sequence”:

a.Structure 视图将网络请求按访问的域名分类;

b.Sequence 视图将网络请求按访问的时间排序。

2.大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles提供了一个简单的Filter功能,可以输入关键字来快速筛选出URL 中带指定关键字的网络请求。

3.对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles可以自动帮你将JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles可以显示出图片的预览。

六、Https抓包操作步骤

Step 1:了解一下https的基本原理;

Step 2:在手机端安装SSL证书;

Step 3:激活Charles的SSL代理;

Step 4:将指定的URL请求开启SSL代理功能

Step 5:其他步骤与Http抓包相同,请参考四、Http抓包操作步骤

Step 1:了解一下https的基本原理;

HTTPS其实是有两部分组成:HTTP+ SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看图,下面这个图的解说

详细说明,请参考:

http://blog.csdn.net/clh604/article/details/22179907

Step 2:在手机端安装SSL证书

1.将证书文件从Charles导出

2.然后通过adb或者其他工具将其复制到手机的SD卡中。

从Charles导出证书文件

3.将证书文件导入Android手机

在手机的设置界面找到【安全】---》【从内部存储设备或SD卡安装】----》选择SD卡上的证书---》弹出设置证书名对话框,输入一个易记的名字,然后根据提示进行导入即呵。

4.将证书文件导入iOS手机

1.在iPhone手机上打开Safari浏览器,然后在地址栏中输入www.charlesproxy.com/getssl。2.稍后会弹出安装描述文件提示,点击右上角的【安装】按钮进行证书安装即可。

Step 3:激活Charles的SSL代理

1.选择【Proxy】--->【SSL Proxying Settings..】设置。2.在弹出来的对话框中沟选【Enable SSL Proxying】。

Step 4:将指定的URL请求开启SSL代理功能

1.选择抓取的https链接,然后右键选择【Enable SSL Proxying】。2.如果不激活SSL代理,所以https请求都是乱码无法查看。

再次请求这个Https时,其请求内容已经一目了然了。

七、Charles进阶---修改请求也响应的内容

Step 1:设置Charless断点。

Step 2:对指定的URL开启断点功能。

Step 3:编辑请求与响应的内容。

Step 1:设置Charless断点

选择【Breakpoint Settings…】--->勾选【Enable Breakpoints】来激活断点功能

Step 2:对指定的URL开启断点功能。

1.选择一个URL链接-à右键开启菜单---》选择【Breakpoints】即可开启此请求的断点。2.这样Charles会遇到此请求时会弹出中断对话框。

Step 3:编辑请求与响应的内容。

a.编辑请求内容

在中断对话框中,用户可以点击Edit Request来编辑请求的内容,编辑完成后然后点击【Execute】发出去这个请求给服务端

b.编辑服务器响应的内容

在【Edit Request】对话中点击【Execute】发出请求后,服务端返回来数据后,用户点击【Edit Response】可对响应内容进行编辑完成后然后点击【Execute】发出去这个数据给客户端。

八、Charles进阶---弱网模拟

1.菜单中选择【Proxy】--->【Throttle Settings..】-à激活【Enable Throttling】。

2.在Throttle Configuration设置弱网的参数。

3.以下是各种网制式的速率参考文档:

移动网络制式与网速的参考文档

弱网模拟设置


作者:luckydaxian链接:https://www.jianshu.com/p/68684780c1b0

转载于:https://www.cnblogs.com/huangcong/p/8418424.html

黄聪:移动应用抓包调试利器Charles相关推荐

  1. 物联网设备获取北京时间、年月日、星期几,GMT格林威治标准时间转换为北京时间,授时api Fiddler抓包调试

    1. 获取北京时间.年月日 授时api 苏宁获取北京时间的api不要太方便:http://quan.suning.com/getSysTime.do 使用 Fiddler抓包调试,查看HTTP返回报文 ...

  2. 【米家】Charles 抓包调试

    抓包调试 扩展程序SDK 中的接口均通过网络与小米IoT 平台交互,为了方便开发者在开发扩展程序的过程中,快速定位并排查问题,开发者在开发以及调试的过程中,使用抓包工具Charles,分析问题出现的原 ...

  3. 网络抓包调试神器Charles-proxy使用方法,网络代理:HTTP调试工具Charles Proxy

    Charles是一款移动端抓包工具,这款软件相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!Charles通过将自己设置成系统的网 ...

  4. 【详细教程】抓包神器:Charles

    逛逛 GitHub 除了推荐一些优质.有趣的 GitHub 项目,也会发一些好玩有用的软件,比如历史发布的: 微软给 Win10 量身打造的效率神器 推荐这一款提供效率的软件 Wox Windows ...

  5. 抓包神器:Charles

    Charles 是在 PC 端常用的网络封包截取工具,在做开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.除了调试端口外,Charles 也可以用于分析第三方应用的通讯协议. ...

  6. 苹果手机iOS系统关闭抓包或卸载Charles抓包证书步骤

    苹果手机iOS系统关闭抓包或卸载Charles抓包证书步骤 很多小伙伴,抓包完成后,不想再次抓包了,如何关闭呢? 可以最简单的操作,是从手机设置,进入通用 找到通用 下方的 VPN与设备管理,点击进入 ...

  7. 计网 - TCP 实战:如何进行 TCP 抓包调试?

    文章目录 Pre 接口列表 开启捕获功能 观察 TCP 协议 消息视图 观察 HTTP 协议 过滤和筛选 报文颜色 总结 QA: 请你用自己最熟悉的语言,写一个 UDP 连接程序,然后用 Wiresh ...

  8. wireshark 抓包调试 RTSP

    文章目录 下载安装wireshark 测试 分析数据 20220302 最简单的是直接过滤rstp 下载安装wireshark https://pc.qq.com/detail/9/detail_69 ...

  9. charles代理手机调试_Mac 上使用 Charles 进行手机抓包调试

    RN 开发时虽然可以借助 remote-devtools 等工具在 chrome 中调试,但是在有些场景下,比如微信登录,不能用 chrome 调试,这个时候就需要抓包工具的帮助了,在 Mac 上首选 ...

最新文章

  1. redis取出list最边的一个_这几个Redis使用技巧,让你的程序快如闪电
  2. pyqt5讲解13:图形与特效,设置窗口大小
  3. when is Component-preload.js loaded by UI Framework
  4. Equipment upload 不起作用的分析
  5. python自动化办公知识点整理汇总_Python自动化办公知识点整理汇总
  6. android绘制环形进度_Android实现环形进度条代码
  7. Android之页面有变化用onWindowFocusChanged来监听权限是否开启
  8. java 正则表达式
  9. 地图小部件—ArcGIS API for JavaScript
  10. 最长公共子序列算法 java_转【算法之动态规划(三)】动态规划算法之:最长公共子序列 最长公共子串(LCS)字符串相似度算法...
  11. support.SerializationFailedException: Failed to deserialize payload.
  12. PHP将图片转换成base64编码,hash函数
  13. 用javascript源码打印页面
  14. 电脑操作系统维护10条基础知识!
  15. FinTech普惠中国,技术创新智慧杭州
  16. 物联网发展前景和统一通信
  17. APP如何在应用商店获取较高的排名?
  18. 鼠标垫测试软件,百款鼠标垫测试(项目)
  19. 虚拟机ping www.baidu.com不通问题
  20. 交换原理-QOS TD与WRED

热门文章

  1. Python字符串常用方法(split,partition,maketrans,strip...)
  2. java公平锁和非公平锁_java并发编程学习之再谈公平锁和非公平锁
  3. mysql获取上月的某一天
  4. 帆软报表数据库配置及关系
  5. Maven项目创建后没有resources文件夹
  6. 【转】VB中NEW的用法(申请内存空间)
  7. 通达信众赢全部破解指标(完美无错源码副图)
  8. 伯克利人工智能导论课开放:视频、PPT和练习都在这 | 资源
  9. 最贵5000!小米最贵旗舰MIX 3发布,雷军:干翻华为
  10. 国产激光雷达厂商禾赛科技B轮融资2.5亿元,光速中国和百度领投