黄聪:移动应用抓包调试利器Charles
一、Charles是什么?

二、为什么是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请求过程

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

四、Charles的下载与安装过程
1.官网下载地址:
2.Mac下安装:
是一个安装包是一个dmg后缀的文件。打开后将Charles拖到Application目录下即完成安装。

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时所设置的端口。

b. iOS手机:
1.点击你所连接的wifi
2.输入代理服务器的IP与端口,
IP即安装了Charles的电脑IP地址,端口就是前面一步设置Charles时所设置的端口。

Step 3:开启Charles录制功能

Step 4:启动应用开始抓包

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的基本原理;

详细说明,请参考:
Step 2:在手机端安装SSL证书
1.将证书文件从Charles导出
2.然后通过adb或者其他工具将其复制到手机的SD卡中。

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

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

Step 3:激活Charles的SSL代理

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


七、Charles进阶---修改请求也响应的内容
Step 1:设置Charless断点。
Step 2:对指定的URL开启断点功能。
Step 3:编辑请求与响应的内容。
Step 1:设置Charless断点

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

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

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

八、Charles进阶---弱网模拟
1.菜单中选择【Proxy】--->【Throttle Settings..】-à激活【Enable Throttling】。
2.在Throttle Configuration设置弱网的参数。
3.以下是各种网制式的速率参考文档:

作者:luckydaxian
链接:https://www.jianshu.com/p/68684780c1b0
黄聪:移动应用抓包调试利器Charles的更多相关文章
- 移动应用抓包调试利器Charles
转载:http://www.jianshu.com/p/68684780c1b0 一.Charles是什么? Charles是在 Mac或Windows下常用的http协议网络包截取工具,是一款屌的不 ...
- Fiddler抓包调试前端脚本代码
0.写在前面的话 之前看了阮一峰老师关于互联网协议入门的博客,受益匪浅,接着再去体会了下HTTP协议,就想着看实际网络访问中的那些HTTP请求头和响应是什么样的.Chrome的调试工具的Network ...
- 深入浅出新一代跨平台抓包&调式利器Fiddler Everywhere
什么是Fiddler Everywhere? Fiddler Everywhere is a web debugging proxy for macOS, Windows, and Linux. Ca ...
- 深入浅出,新一代跨平台抓包&调式利器Fiddler Everywhere
什么是Fiddler Everywhere? Fiddler Everywhere is a web debugging proxy for macOS, Windows, and Linux. Ca ...
- 手机app/h5页面http请求抓包调试
1.抓包机器跟客户端手机连上同一wifi热点,最好是第三者提供的移动wifi,公司内网wifi网络访问有限制. 2.设置手机客户端http代理 三者关系图示:
- 使用Fiddler抓包调试https下的页面
众所周知https技术诞生以来,一个很重要的作用就是加密通信内容.所以在项目团队将业务站点实施完https改造以后,原先使用fiddler进行抓包的美好生活到头了.其实fiddler本身是支持对于ht ...
- 【抓包】【Charles】
Mac抓包神器-----Charles Charles 是一款Mac上的HTTP代理服务器.HTTP监视器.反向代理服务器,可以让开发者监视查看所有连接互联网的HTTP通信,包括请求,响应和HTTP头 ...
- 比Wireshark更轻量、更方便的抓包软件:Charles
转:http://blog.csdn.net/lixing333/article/details/42776187 之前写过一篇通过Wireshark进行抓包,分析网络连接的文章<通过WireS ...
- 【抓包分析】Charles和 夜神模拟器 对安卓应用进行抓包分析
准备工具 : 1 Charles : https://www.charlesproxy.com (收费) 2 夜神模拟器 : https://www.yeshen.com (免费) 2 模拟 ...
随机推荐
- linux测试系统使用expdp迁移数据到windos系统,11.2.0.4版本测试
测试,使用linux 系统,迁移至windos测试系统,迁移用户scott 1.源端导出(linux) 2.传输 3.目标端导入(windows) 1.源端导出,本次使用expdp 1)创建操作系统转 ...
- Android ADT 工具下载地址
/********************************************************************************* * Android ADT 工具下 ...
- JS书写规范
1.js代码是由语句组成的,每一条语句以分号结尾: 语句是有关键字,元素符,表达式组成的:2.js代码严格区分大小写3.所有的标点符号都是英文的4.//表示单行注释,/* */表示多行注释
- Gym - 101889D:Daunting device (老司机树)
题意:N个格子排出一排,开始格子颜色都是1:现在有M个操作: 或,把区间[L,R]颜色改为c: 或,查询一共有多少格子颜色为c. 最后求颜色最多的数量. 数据是随机的,且强制在线. 思路:ODT裸题. ...
- int &p
int &p为引用,而int p为定义变量.二者区别如下:1 引用在定义的时候必须赋值,否则编译会出错.正确的形式为int &p = a;其中a为int型变量.2 引用在定义时不会分配 ...
- PTA——猴子吃桃
PTA 7-35 猴子吃桃问题 #include<stdio.h> int main() { ; scanf("%d",&n); ; i<n; i++) ...
- 2017.7.21 python statvfs方法读取磁盘容量
实地代码 [maintenance@localhost ~]$ python Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150 ...
- hdu2204 Eddy's爱好 打表+容斥原理
Ignatius 喜欢收集蝴蝶标本和邮票,但是Eddy的爱好很特别,他对数字比较感兴趣,他曾经一度沉迷于素数,而现在他对于一些新的特殊数比较有兴趣.这些特殊数是这样的:这些数都能表示成M^K,M和K是 ...
- test20190331
贪吃蛇(snaker.cpp/.in.out 1S 512M) [题目描述] C 最近爱上了玩贪吃蛇,想要自己制作一款贪吃蛇游戏,但是她太弱了,只会写一个一维的程序. 游戏界面可以看做一条长为 n 的 ...
- day16 Hbase day17
这个HBase学习了第二遍也不是太透彻PS:启动Hbase之前先启动Zookeeper.HDFS.yarn 1. hbase简介(是基于HDFS.相当于是一个缓存层) 1.1. 什么是hbase(列式 ...