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 勾选上。
- 手机端配置,把手机WIFI的手动代理打开,代理服务器主机名设为电脑的IP地址,代理服务器端口设置为Charles里配置的端口。注意:电脑和手机必须连接同一个网段。
配置好了之后,就能在Charles看到手机端与服务器之间的数据交互了。在Request中能看到手机端发送的请求数据,在Response中能看到服务端返回给手机的数据。
3. Map功能
也就是上面说的请求映射,使用方法:
将Response保存到本地。在Response区域单击右键,有一个Save Response的选项,可以将Response保存到本地。
在左边Structure中选中接口,单击右键,有一个Map Local...选项。在Local Path里填上本地的Response文件地址,如下:
然后,下次手机再请求这个接口时,返回的就是本地Response里的数据了。这时候就可以愉快地修改本地Response数据,想要返回什么数据就有什么数据。
- Map管理
在 Tools -> Map Local 中可以对Map进行管理:允许或者取消某一个接口的Map,也可以编辑Map地址。可以说用起来是相当愉快呢!