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地址。可以說用起來是相當愉快呢!