1、Charles准备工作
2、Charles抓包原理
- osi七层参考模型了解
-
首先Charles运行在自己的PC上:Charles运行的时候会在PC的8888端口开启一个代理服务,这个服务实际上是一个
HTTP/HTTPS的代理
-
确保手机和PC在同一个局域网内:我们可以使用手机模拟器(如夜神)通过虚拟网络连接,也可以使用手机真机和PC通过无线网络连接,
-
设置手机代理为Charles的代理地址:这样手机访问互联网的数据包就会流经Charles,Charles再转发这些数据包到真实的服务器,服务器返回的数据包再由Charles转发回手机,Charles就起到中间人的作用,所有流量包都可以捕捉到,因此所有HTTP请求和响应都可以捕获到,同时Charles还有权力对请求和响应进行修改,而这一过程称为
代理的方式抓包,也就是在上图的应用层
,代理方式的抓包在最上层(应用层
)易被检测到
- 另一种方法:使用
vpn方式抓包
,运行在网络层
,更加底层,可以捕获到更多的上层流量,常常借助Postern
代理工具,可以将http请求转为socket(socket在会话层
,也是底层一些,可以捕获到更多的上层流量),并且包转发到Charles上,这样就可以抓到更多的包
3、Charles抓包步骤
-
以京东app为例,通过Charles抓取App运行过程中的网络数据包,然后查看具体的Request和Rseponse内容,以此来了解Charles的用法
-
(1) 初始状态,监听按钮红色显示打开,灰色是关闭;
-
(2) Charles监听手机发生的网络数据包,捕获到的数据包显式在左侧,随着时间的推移,捕获到的数据包会越来越多,左侧列表内容也会越来越多;点击左侧条目,右侧显示请求的详细信息;
-
(3)操作:打开手机京东,打开一个商品,查看评论,并不断上拉加载评论;这时左侧api.m.jd.com链接不停闪动,展开查看里面条目详情,切换到Contents选项卡,可以在CommentData字段里面查看到评论内容;
-
(4)操作:这时可以确定,此请求对应的接口就是获取商品评论的接口,这样我们就成功的捕获到了在上拉刷新过程中发生的请求和响应内容;
4、Charles抓包分析
- 在Overview选项卡中,显示 请求接口的URL,响应状态,以及请求方式Method,由于是POST请求,还需要切换到Contents选项卡中Form表单查看详细信息;
- 这样我们就成功抓取App中的评论接口请求和响应,并且可以查看Response返回的JSON数据;
5、Charles重发请求
- Charles可以将捕获到的请求加以修改并发送修改后的请求。点击修改按钮可进行修改;
- 有了这个功能,我们就可以使用Charles来做调试,通过修改参数、接口等来测试不同请求的响应状态,就可以发现参数有哪些规律,最后的到最简单的接口和参数形式供程序模拟调用使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)