Android开发

使用Charles对Android 进行HTTP抓包

2017-09-13  本文已影响0人  黑猫神2

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捕获到。

设置HTTP代理端口

 配置好了之后,就能在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 设置



上一篇 下一篇

猜你喜欢

热点阅读