美文网首页Android开发
使用Charles对Android 进行HTTP抓包

使用Charles对Android 进行HTTP抓包

作者: 黑猫神2 | 来源:发表于2017-09-13 10:47 被阅读0次

    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 设置



    相关文章

      网友评论

        本文标题:使用Charles对Android 进行HTTP抓包

        本文链接:https://www.haomeiwen.com/subject/nkjksxtx.html