什么是Charles
Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器,當程序連接Charles的代理訪問互聯網時,Charles可以監控這個程序發送和接收的所有數據。它允許一個開發者查看所有連接互聯網的HTTP通信,這些包括request, response和HTTP headers包含cookies與caching信息)。
Charles安裝
去Charles的官方網站(http://www.charlesproxy.com)下載最新版的相應操作系統的Charles安裝包安裝即可。Charles是收費軟件,可以免費試用30天。試用期過后,未付費的用戶仍然可以繼續使用,但是每次使用時間不能超過30分鍾,並且啟動時將會有10秒種的延時。
破解Charles收費功能
鏈接:https://pan.baidu.com/s/1uPvSvrP9mApG76ttssIPxg 密碼:ih46 下載charles.jar。MAC OS中將下載的jar替換掉/Applications/Charles.app/Contents/Java文件夾中的charles.jar
獲取pc端網絡請求包
Charles 是通過將自己設置成代理服務器來完成抓包的,勾選系統代理后,系統本地發出去的請求都能被截取下來。如果只抓取APP的包的話,可關閉此配置,這樣不會出現太多的數據看着比較亂。

獲取移動端網絡請求包
我們在調試移動APP時,需要抓取APP發送的數據包,首先進行設置,Proxy -> Proxy Settings默認端口是8888,根據實際情況可修改。

查看本機IP地址:Help -> Local IP Addresses
然后配置手機代理:
填寫pc端ip已經剛才設置的端口號

打開要調試的APP,請求就會先發送到Charles,然后驗證是否允許訪問。
查看網絡請求

過濾請求:在Sequence界面的中部的Filter欄中填入需要過濾出來的關鍵字。例如我們的服務器的地址是:*.leautolink.com,那么只需要在Filter欄中填入leautolink即可。(一般用於臨時過濾)

代理轉發
實際開發時,有這樣的場景,服務端線上版本有bug,你在本地修改程序后,需要模擬實際的線上環境,來驗證程序的正確性,最笨的方法就是讓客戶端修改一下APP的調用地址到你本機,然后重新打一個版本供你模擬測試,這樣雖然可以,但每次遇到bug都要這么做的話,那效率極其低下,然而Charles為我們解決了這個問題。
請求轉發,把調用方調用的地址轉發到你本機地址的程序進行執行
右鍵請求 -> Map Remote ...


並且配置Tools -> Map Romote

Https請求抓包
默認我們是看不到https的請求數據的。我們需要安裝證書。
mac


雙擊打開Charles Proxy CA


手機配置完代理(必須的操作)后,瀏覽器打開http://chls.pro/ssl下載證書並安裝
然后配置Proxy -> SSL Proxying Settings... 添加要抓取的https請求,兩個都寫,*代表所有


配置完成
參考文章:https://www.jianshu.com/p/993bc794138d
