Android开发工具系列 --抓包及假数据代理 (一)

时间:2024-03-25 22:47:23

Charles

我们常用的抓包工具有两个,一个是本篇的介绍对象Charles,另一个是Fiddler,二者的区别一个是前者收费后者免费,数据展现前者以目录结构的形式展现,更加直接,而后者以列表形式展现,数据多的时候看起来有点乱。本文主要介绍其两个重要功能,抓包及代理本地数据,如果单看抓包功能的话Studio 3.0及更高版本中的Android Profiler也可以。所以这篇文章的重点的重点是代理本地数据

前言

开发人员都知道,我们开发时需要和后台人员联调,那如果每次更改数据都要去找后台人员更改或者配置环境也太麻烦了,这时候如果这个数据是一个存储在我们本地的文件,想改什么数值就更改这个文件里面的数值多方便?包括数据类型也可以,这就是代理本地数据的意思,我们根据写好的接口文档中的数据类型(后台人员会先把接口文档及其数据结构写出来),创建一个.json文件。然后通过设置Charles将这个json文件和我们的手机关联起来,就可以实现上述描述的操作了,下面开始描述相应的配置。

下载及安装

1、地址:https://www.charlesproxy.com/ 下载完并安装好
2、打开charles安装目录
Android开发工具系列 --抓包及假数据代理 (一)
3、打开后,将lib目录中的charles.jar 替换为我们自己**的charles.jar包,**就完成了。
Android开发工具系列 --抓包及假数据代理 (一)

使用

Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。
以截取手机上的数据为例:

抓包步骤:

  • 1、电脑上的操作:
    首先要获取我们电脑的ip地址,例如:192.16.1.1
    其次设置charles的端口号:
    Android开发工具系列 --抓包及假数据代理 (一)
    Android开发工具系列 --抓包及假数据代理 (一)
    上面两个图就是查看charles端口号的步骤
  • 2、 手机上的设置
    ①、找到你手机正在连接的wifi,然后设置代理,服务器为ip地址,也就是你电脑的ip地址。端口号为charles上输入的端口号
    Android开发工具系列 --抓包及假数据代理 (一)
    Android开发工具系列 --抓包及假数据代理 (一)
    ②、安装手机证书
    Android开发工具系列 --抓包及假数据代理 (一)
    Android开发工具系列 --抓包及假数据代理 (一)
    需要注意:,每个手机品牌的证书安装方式不同,多数品牌需要使用自带的浏览器去进行下载,下载后点击文件即可安装,个别如小米、oppo等需要额外的操作,为简化篇幅这里不一一介绍,下载地址就是上述图片中的地址,安装手机证书时遇到问题可自行谷歌百度,或者评论区留言获取帮助。
    这样基本的设置就完成了,charles就可以截取你手机访问数据的来源了。
    这只是简单的使用,可以让你查看debug模式下的网络接口请求数据,release包https请求API26及以上是无法查看的。

Charles 主要的功能包括:

  • 截取 Http 和 Https 网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 支持模拟慢速网络。
    第一个功能我们基本实现了。下一个功能:截获网络请求并动态修改

截获网络请求并动态修改

通常我们会只截取一个网址的请求,这样就需要过滤网络请求了,过滤网路请求的设置为:
Android开发工具系列 --抓包及假数据代理 (一)
Android开发工具系列 --抓包及假数据代理 (一)
然后就可以开始截获数据,并修改的操作:
Android开发工具系列 --抓包及假数据代理 (一)
获取返回这个数据的接口数据。并保存到本地:
原先的接口数据如下:
Android开发工具系列 --抓包及假数据代理 (一)
要想更改这个接口中的数据,操作如下:
Android开发工具系列 --抓包及假数据代理 (一)
Android开发工具系列 --抓包及假数据代理 (一)
Android开发工具系列 --抓包及假数据代理 (一)
Android开发工具系列 --抓包及假数据代理 (一)
Android开发工具系列 --抓包及假数据代理 (一)
然后现在在本地修改保存的数据,下面这张截图修改的是你本地的json文件,可以用NotePad++等文本工具打开:
Android开发工具系列 --抓包及假数据代理 (一)
然后再请求一次这个页面。就会显示修改这个数据成功了,效果如下:
Android开发工具系列 --抓包及假数据代理 (一)
这个操作可以对接口的数据进行,增加,删除,修改,等操作,都可以映射到我们的客户端,方便我们在服务端未返回数据时调试数据。
注:如果需要取消Map Local的本地映射,可至菜单栏Tools中修改。
Android开发工具系列 --抓包及假数据代理 (一)
去掉上图中的对勾就可以了

模拟慢网速

有时我们需要查看开发的App的网络加载状态图,但是无线网速都比较快,加载中的状态可能一闪而过,根本看不到样式,这时我们就需要一个模拟慢网速的功能了,如果没有代理工具的话可以把手机设置成2G网络去实现,如果使用代理工具的话就很方便,可以随意设置你想设置的网速,步骤如下:
Android开发工具系列 --抓包及假数据代理 (一)
点击一下图片上的小乌龟就可以,一般可以满足我们的需求,如果想要自己设置具体慢速的网络,可按照下述图片的步骤进行操作:
步骤一:
Android开发工具系列 --抓包及假数据代理 (一)
步骤二:
Android开发工具系列 --抓包及假数据代理 (一)
本篇文章至此结束,可以发现,在需求开发的初始阶段调试数据结构时,charles工具可以极大的提高我们的开发效率,但是进入接口调试阶段后大量的数据还是需要和后台联调,因为我们不能自己写大量数据,那样太麻烦了。
下一篇会介绍一下另一个抓包及代理的工具fiddler,免费版。


charles替换用的jar包如有需要可评论留下邮箱获取