使用Charles对Android 进行HTTP抓包


1. Charles能做的事:

Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

 官方介绍:Charles让开发者能够直观地浏览机器客户端和互联网之间的通信数据,包括客户端发送的请求数据、服务端返回的响应数据以及HTTP头部。

 除了官方介绍,对于Android开发来说,Charles还有一个非常实用的功能。Charles能将某个接口的服务端响应数据保存到本地电脑上,然后将请求映射到本地,下次再请求这个接口时,手机端收到的response就是已经保存在本地的数据。而我们可以随意修改本地数据,也就是说,可以让客户端接收到任意我们想给的数据。

2. 代理配置:

配置好网络代理才能让手机端的请求被Charles捕获到。

  • Charles端配置,主要是设置好端口号,这里设置了8888,让后把 Enable transparent HTTP proxing 勾选上。
设置HTTP代理端口
  • 手机端配置,把手机WIFI的手动代理打开,代理服务器主机名设为电脑的IP地址,代理服务器端口设置为Charles里配置的端口。注意:电脑和手机必须连接同一个网段。

 配置好了之后,就能在Charles看到手机端与服务器之间的数据交互了。在Request中能看到手机端发送的请求数据,在Response中能看到服务端返回给手机的数据。

Charles抓取到的数据

3. Map功能

也就是上面说的请求映射,使用方法:

  1. 将Response保存到本地。在Response区域单击右键,有一个Save Response的选项,可以将Response保存到本地。

  2. 在左边Structure中选中接口,单击右键,有一个Map Local...选项。在Local Path里填上本地的Response文件地址,如下:

Mapping编辑

 然后,下次手机再请求这个接口时,返回的就是本地Response里的数据了。这时候就可以愉快地修改本地Response数据,想要返回什么数据就有什么数据。

  1. Map管理
    在 Tools -> Map Local 中可以对Map进行管理:允许或者取消某一个接口的Map,也可以编辑Map地址。可以说用起来是相当愉快呢!
Map Local 设置




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • 连续两天的线条年会及培训,小伙伴的分享、老师的培训、领导的指点,都让我受益匪浅,更多的还有感动和感恩。对一些事情忽...
    红豆酥阅读 286评论 0 0
  • 新学期伊始,我接手了两个新的班级。图片上是传说中的八年级最好的班。 好吧,一切从零开始。我按照我的方式改变...
    我心向月阅读 151评论 0 4
  • Given two binary strings, return their sum (also a binary...
    exialym阅读 707评论 0 0
  • 许峻阅读 200评论 0 0