charles是目前最強大最流行的http抓包調試工具,mac、unix、windows各個平台都支援。特别是做app開發,調試與服務端的通信,charles是必備工具。
目前charles是收費的,不過可以破解。
破解方式
解壓charles_3.11.4_crack.rar,将其中的charles.jar替換掉charles安裝路徑中的charles.jar即可
charles本質是就是一個http抓包分析工具,在工作的時候需要先把charles設定成代理伺服器,這樣所有的網絡請求都會經過charles了。
我們在進行app開發或測試時,經常需要知道app的每一步操作調用的是哪個接口,請求參數是什麼,傳回值是什麼,作為服務端,有時還需要對app的某一個操作進行debug。通過簡單配置,我們就可以将我們手機app上所有請求發送到pc端charles代理中,charles會自動抓取http網絡包分析請求和傳回值,當然這些隻是charles最基本的功能。
下面就介紹如何配置charles:
手下手機和電腦必須在一個區域網路内,不一定非要是一個ip段,隻要是同一個路由器下就可以了
在pc端安裝charles,關掉防火牆,打開charles,進入<code>proxy->proxy setting</code>,設定http proxy代理端口:<code>8888</code>(一般預設設定為這個)

在移動端,進入<code>無線網絡->點選目前連接配接的wifi->代理設定->設定伺服器位址和端口</code>(各手機配置不太一樣),這裡的伺服器位址就是pc端的ip位址,端口就是上面設定pc端的代理端口8888
經過上面設定,我們手機上的所有請求都會發送到我們pc端指定的端口,而這個端口就是charles的代理端口。是以,用戶端的請求和服務端的響應都會經過charles,我們通過charles就可以很友善的看到請求和響應相關的資料啦。
charles提供了兩種檢視封包的視圖,分别是<code>structure</code>和<code>sequence</code>。
我們可以在使用時根據需要随時切換。按照上面介紹配置好,下面就開始示範啦。
第一步,我們打開我們的app,輸入使用者名密碼,點選登入
第二步(初次使用可能要求我們給予權限,點選允許即可),再看我們的charles主界面,structure視圖中可以看到這次操作的http請求響應資訊,并且請求按域名進行了分組
我們可以切換到sequence界面,所有的請求按照請求時間進行排列:
如果不設定過濾,手機上所有app的網絡請求都會被解析,看起來很亂,通常情況下,我們隻希望看到用戶端對應應用伺服器的網絡請求,這時就需要對網絡請求進行過濾,隻監控向指定目錄伺服器上發送的請求。對于這種需求,我們有2種辦法。