前言:
Charles是在 Mac 下常用的網(wǎng)絡封包截取工具轨香,在做移動開發(fā)時,我們?yōu)榱苏{(diào)試與服務器端的網(wǎng)絡通訊協(xié)議悯衬,常常需要截取網(wǎng)絡封包來分析弹沽。
一、主界面介紹
二筋粗、網(wǎng)頁抓包
啟動 Charles 后策橘,需要將 Charles 設置成系統(tǒng)代理,選擇菜單中的 “Proxy” –> “macOS Proxy” 來將 Charles 設置成系統(tǒng)代理娜亿。如下所示:
這樣你會發(fā)現(xiàn)丽已,你通過瀏覽器請求的網(wǎng)址都會出現(xiàn)在這里。點擊某一個網(wǎng)址后买决,你會發(fā)現(xiàn)右邊會出現(xiàn)這個網(wǎng)址請求的大概信息沛婴,點擊具體的請求后會出現(xiàn)request和response等信息。如下圖:
三、手機抓包
Charles 上的設置:
要截取 iPhone 上的網(wǎng)絡請求没卸,我們首先需要將 Charles 的代理功能打開羹奉。在 Charles 的菜單欄上選擇 “Proxy”–>“Proxy Settings”,填入代理端口 8888约计,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的設置诀拭。如下圖所示:
iPhone 上的設置:
首先我們需要獲取 Charles 運行所在電腦的 IP 地址,Charles 的頂部菜單的 “Help”–>“Local IP Address”煤蚌,即可在彈出的對話框中看到 IP 地址耕挨,如下圖所示:
當然如果要抓取iPhone設備上的HTTPS請求筑凫,需要在iPhone上也安裝一個證書,在手機瀏覽器輸入這個網(wǎng)址:http://charlesproxy.com/getssl 并村,點擊安裝即可巍实。
四、過濾
在 Charles 的菜單欄選擇 Proxy->Recording Settings哩牍,然后選擇 Include 欄棚潦,選擇Add,然后填入需要監(jiān)控的協(xié)議膝昆,主機地址丸边,端口號,這樣就達到了過濾的目的。如下圖:五骄呼、模擬慢速網(wǎng)絡
有時候在測試的時候我們想要模擬一下網(wǎng)絡慢的情況,這時候Charles他是可以幫助到你的滔驾,在Proxy->Throttle Setting谒麦,然后選擇Enable Throttling,在Throttle Preset下選擇網(wǎng)絡類型即可哆致,具體設置你可以自行拿捏绕德。如果我們只想模擬指定網(wǎng)站的慢速網(wǎng)絡,可以再勾選上圖中的 “Only for selected hosts” 項摊阀,然后在對話框的下半部分設置中增加指定的 hosts 項即可耻蛇。
六踪蹬、修改網(wǎng)絡請求
有些時候為了調(diào)試服務器的接口,我們需要反復嘗試不同參數(shù)的網(wǎng)絡請求臣咖。Charles 可以方便地提供網(wǎng)絡請求的修改和重發(fā)功能跃捣。只需要選中以往的網(wǎng)絡請求,工具欄中點擊 “Edit”夺蛇,即可創(chuàng)建一個可編輯的網(wǎng)絡請求疚漆。如下所示:七、給服務器做壓力測試
我們可以使用 Charles 的 Repeat 功能來簡單地測試服務器的并發(fā)處理能力刁赦,方法如下:
接著我們就可以在彈出的對話框中甚脉,選擇打壓的并發(fā)線程數(shù)以及打壓次數(shù)丸升,確定之后,即可開始打壓牺氨。
八狡耻、斷點
在Charles發(fā)起一個請求的時候,我們是可以給某個請求打一個斷點的猴凹,然后來觀察或者修改請求或者返回的內(nèi)容夷狰,但是在這過程中要注意請求的超時時間。
以上