本文介紹的功能:
安裝和基本使用
支持https
斷點的使用(修改請求和返回數(shù)據(jù))
重定向和加載本地數(shù)據(jù)
安裝和使用
1、打開上面地址,然后搜索charles,有下載地址和相應的破解方法
2、安裝,打開軟件
3、打開? Help — Local IP Address。查看本機的IP地址


3、設置手機,手機需要連接到和電腦在同一網(wǎng)絡的 WIFI
依次打開“設置 — 無線局域網(wǎng) — 點擊已選wifi最右邊的感嘆號”

填好以后,返回。
打開Chales即可看到手機的http請求都可以被Charles監(jiān)控
以美團外賣為例:
清空接口:可以清空側欄所有記錄的接口
停止記錄:接口依然會通過代理,但是不會在側欄記錄和顯示

抓包Https請求
上面最基本的抓包使用,是不能抓取https的數(shù)據(jù)的,抓取到的https數(shù)據(jù)是亂碼的。隨著蘋果方面的要求,iOS 的App都需要使用https的請求。所以絕大部分的接口還是需要https。所以charles需要支持https
1、電腦證書

選擇“Install Charles Root Certificate” 后可能需要輸入電腦密碼,輸入密碼以后,會自動打開“鑰匙串”
此時電腦證書已經(jīng)安裝成功,在鑰匙串中找到相應的證書
Charles Proxy CA
雙擊證書,把證書的信任設置為“始終信任”

2、Charles設置

打開Charles的 SSL Proxying Settings...

3、手機證書
在保證手機連接到了charles的代理后,再安裝手機證書

按照上面的路徑,可以看到下面這個

手機安裝證書完成后的界面如下

★? 注意:對于iOS 10.3及其以后的版本,安裝完證書后,還需要設置證書的權限
路徑 “設置 — 通用 — 關于本機 — (滑到最下面) — 證書信任設置 ” 把對應證書的開關打開
斷點的使用
首先介紹一下什么是斷點
Charles的斷點
在抓取接口時,請求發(fā)出去之前,攔截并暫停。此時可以修改請求的參數(shù)
在接口返回數(shù)據(jù),而數(shù)據(jù)到達客戶端之前,攔截并暫停。此時可以修改返回的數(shù)據(jù)

斷點開關.png
添加斷點
方法一
直接根據(jù)自己的需求添加斷點


方法二
快速添加斷點
右擊特定接口,直接添加接口斷點

在這個模式下,可以整個域名下所有接口添加斷點

快速添加斷點時需要注意
打開斷點設置界面,查看新添加的斷點中的 Query 項是否有類似時間戳的參數(shù),如果有的話,每次請求的時間參數(shù)不同,會導致下次請求的時候,由于時間參數(shù)不同,斷點功能失效。解決方法可以清空 Query項的內容。
使用斷點
設置好接口斷點以后,再次請求該接口,Charles就會出現(xiàn)如下界面


接口斷點
結束斷點以后,App拿到的收據(jù)就是你修改后的數(shù)據(jù)
這個功能還是比較實用的,這樣就可以省略一些服務端需要的配合。自己可以通過修改數(shù)據(jù)來模擬出不同的情況。
重定向、加載本地數(shù)據(jù)
在發(fā)開和測試的過程中,不免會遇到這種情況。就是需要頻繁的切換開發(fā)環(huán)境和測試環(huán)境,或者是開發(fā)環(huán)境中的數(shù)據(jù)比較豐富,需要切換到開發(fā)環(huán)境中看一下數(shù)據(jù)顯示情況。這個時候Charles的重定向功能就很好用了
重定向


還可以通過對接口右擊的方式添加,如下圖

這樣設置好以后,再次訪問wmapi.maituan.com就會被轉到newwmapi.maituan.com這個域名。不需要切換的時候,只需要關閉功能即可
加載本地數(shù)據(jù)
上面我們介紹了通過斷點可以修改返回數(shù)據(jù),來模擬出不同的顯示情況。斷點的情況只適合比較少,比較快速的修改。如果需要修改特別多的數(shù)據(jù)?;蛘呤窃陂_發(fā)剛開始,接口還不可使用時,移動端需要一些假數(shù)據(jù)來支持自己的開發(fā)。這個時候就可以用Charles加載本地的假數(shù)據(jù)來開發(fā)
這個時候需要配合使用的軟件? ? JsonEdit下載地址
通過JsonEdit軟件 和 后臺給的接口文檔的結構,自己制造出假數(shù)據(jù)
保存到本地json數(shù)據(jù)

本地數(shù)據(jù)制造完成后,返回到Charles,選擇需要假數(shù)據(jù)的接口,右擊

設置

這樣設置好以后,此接口的數(shù)據(jù),就是加載的本地剛剛保存的數(shù)據(jù)。修改本地數(shù)據(jù),然后重新請求接口,App上的顯示就會跟著改變。在自測環(huán)節(jié)這樣的做法是很高效的。