1.Charles抓包
Charles 是在 Mac 下常用的網(wǎng)絡(luò)封包截取工具辆苔,在做 移動開發(fā)時辨赐,我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議命爬,常常需要截取網(wǎng)絡(luò)封包來分析末患。
2.Charles主要功能
1.截取 Http 和 Https 網(wǎng)絡(luò)封包约炎。
2.支持重發(fā)網(wǎng)絡(luò)請求扑媚,方便后端調(diào)試俏拱。
3.支持修改網(wǎng)絡(luò)請求參數(shù)极景。
4.支持網(wǎng)絡(luò)請求的截獲并動態(tài)修改察净。
5.支持模擬慢速網(wǎng)絡(luò)
3.Charles主界面
Charles 主要提供兩種查看封包的視圖,分別名為 “Structure” 和 “Sequence”盼樟。
Structure 視圖將網(wǎng)絡(luò)請求按訪問的域名分類氢卡。
Sequence 視圖將網(wǎng)絡(luò)請求按訪問的時間排序。
我們可以根據(jù)具體的需要在這兩種視圖之前來回切換晨缴。請求多了有些時候會看不過來译秦,Charles 提供了一個簡單的 Filter 功能,可以輸入關(guān)鍵字來快速篩選出 URL 中帶指定關(guān)鍵字的網(wǎng)絡(luò)請求击碗。
對于某一個具體的網(wǎng)絡(luò)請求筑悴,你可以查看其詳細的請求內(nèi)容和響應(yīng)內(nèi)容。如果請求內(nèi)容是 POST 的表單稍途,Charles 會自動幫你將表單進行分項顯示阁吝。如果響應(yīng)內(nèi)容是 JSON 格式的,那么 Charles 可以自動幫你將 JSON 內(nèi)容格式化械拍,方便你查看突勇。如果響應(yīng)內(nèi)容是圖片,那么 Charles 可以顯示出圖片的預(yù)覽坷虑。
4.截取 Https 通訊信息
安裝證書
如果你需要截取分析 Https 協(xié)議相關(guān)的內(nèi)容甲馋。那么需要安裝 Charles 的 CA 證書。具體步驟如下猖吴。
首先我們需要在 Mac 電腦上安裝證書摔刁。點擊 Charles 的頂部菜單,選擇 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate”,然后輸入系統(tǒng)的帳號密碼共屈,即可在 KeyChain 看到添加好的證書绑谣。如下圖所示:
需要注意的是,即使是安裝完證書之后拗引,Charles 默認也并不截取 Https 網(wǎng)絡(luò)通訊的信息借宵,如果你想對截取某個網(wǎng)站上的所有 Https 網(wǎng)絡(luò)請求,可以在該請求上右擊矾削,選擇 SSL proxy壤玫,如下圖所示:
這樣,對于該 Host 的所有 SSL 請求可以被截取到了哼凯。
截取移動設(shè)備中的HTTPS通訊信息
如果我們需要在 iOS 或 Android 機器上截取 Https 協(xié)議的通訊內(nèi)容欲间,還需要在手機上安裝相應(yīng)的證書。點擊 Charles 的頂部菜單断部,選擇 “Help” –> “SSL Proxying” –> “Install Charles Root Certificate on a Mobile Device or Remote Browser”猎贴,然后就可以看到 Charles 彈出的簡單的安裝教程。如下圖所示:
按照我們之前說的教程蝴光,在設(shè)備上設(shè)置好 Charles 為代理后她渴,在手機瀏覽器中訪問地址:http://charlesproxy.com/getssl,即可打開證書安裝的界面蔑祟,安裝完證書后趁耗,就可以截取手機上的 Https 通訊內(nèi)容了。不過同樣需要注意疆虚,默認情況下 Charles 并不做截取苛败,你還需要在要截取的網(wǎng)絡(luò)請求上右擊,選擇 SSL proxy 菜單項径簿。
5.模擬慢網(wǎng)絡(luò)
在做移動開發(fā)的時候著拭,我們常常需要模擬慢速網(wǎng)絡(luò)或者高延遲的網(wǎng)絡(luò),以測試在移動網(wǎng)絡(luò)下牍帚,應(yīng)用的表現(xiàn)是否正常。Charles 對此需求提供了很好的支持乳蛾。
在 Charles 的菜單上暗赶,選擇 “Proxy”–>“Throttle Setting” 項,在之后彈出的對話框中肃叶,我們可以勾選上 “Enable Throttling”蹂随,并且可以設(shè)置 Throttle Preset 的類型。如下圖所示:
如果我們只想模擬指定網(wǎng)站的慢速網(wǎng)絡(luò)因惭,可以再勾選上圖中的 “Only for selected hosts” 項岳锁,然后在對話框的下半部分設(shè)置中增加指定的 hosts 項即可。
6.給服務(wù)器做壓力測試
我們可以使用 Charles 的 Repeat 功能來簡單地測試服務(wù)器的并發(fā)處理能力蹦魔,方法如下激率。
我們在想打壓的網(wǎng)絡(luò)請求上(POST 或 GET 請求均可)右擊咳燕,然后選擇 「Repeat Advanced」菜單項,如下所示:
接著我們就可以在彈出的對話框中乒躺,選擇打壓的并發(fā)線程數(shù)以及打壓次數(shù)招盲,確定之后,即可開始打壓嘉冒。