標籤:監控 功能 根據 對話 settings 點擊 cut api 選項
Charles是一款抓包神器,它是Java開發的跨平台的軟體,不僅可以在Mac上使用,Linux以及Window下都是可以使用的,當然需要安裝JDK,才能運行,他是收費的,需要進行破解.
破解操作:將下載的檔案裡的Charles.jar 替換掉包內容裡的Charles.jar即可
HTTP抓包
http抓包比較簡單,基本上只要開啟了charles,然後隨便一個網路請求,就可以在charles中看到抓取的資訊了,如下:
根據抓包可以看出該請求的請求方式、請求地址及cookie資訊等,也可以查看介面請求結果返回,如下:
charles 用戶端抓包
1. 擷取charles所有pc的IP地址,可以通過cmd,輸入ipconfig進行查看
2. 設定手機代理,設定wifi-選擇【顯示進階選項】-【代理】選擇為手動,【伺服器主機名稱】為charles所在pc的IP,【伺服器連接埠】為charles預設連接埠8888
3. 也可以修改連接埠,找到charles的Proxy-Proxy Settings,可以看到HTTP Proxy的連接埠預設為:8888
4. 代理設定成功後,charles頁面彈出提示,是否允許charles作為手機的網路請求代理,如下:
5. iOS/Android裝置開啟你要抓包的app進行網路操作
Charles 主要提供兩種查看封包的視圖,分別名為 “Structure” 和 “Sequence”。
Structure 視圖將網路請求按訪問的網域名稱分類。
Sequence 視圖將網路請求按訪問的時間排序
過濾網路請求
通常情況下,我們需要對網路請求進行過濾,只監控向指定目錄伺服器上發送的請求。對於這種需求,以下幾種辦法:
方法一:在主介面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如我們的伺服器的地址是:http://wwww.besttest.cn
, 那麼只需要在 Filter 欄中填入 besttest即可
方法二:在想過濾的網路請求上右擊,選擇 “Focus”,之後在 Filter 一欄勾選上 Focussed 一項,如所示:
這種方式可以臨時性的,快速地過濾出一些沒有通過關鍵字的一類網路請求。
類比慢速網路
在測試的時候,我們常常需要類比慢速網路或者高延遲的網路,以測試在移動網路下,應用的表現是否正常。Charles 對此需求提供了很好的支援
在 Charles 的菜單上,選擇 “Proxy”->”Throttle Setting” 項,在之後彈出的對話方塊中,我們可以勾選上 “Enable Throttling”,並且可以設定 Throttle Preset 的類型。如所示:
如果我們只想類比指定網站的慢速網路,可以再勾選中的 “Only for selected hosts” 項,然後在對話方塊的下半部分設定中增加指定的 hosts 項即可。
修改網路請求內容
有些時候為了調試伺服器的介面,我們需要反覆嘗試不同參數的網路請求。Charles 可以方便地提供網路請求的修改和重發功能。只需要在以往的網路請求上點擊右鍵,選擇 “Edit”,即可建立一個可編輯的網路請求。如下所示:
我們可以修改該請求的任何資訊,包括 URL 地址、連接埠、參數等,之後點擊 “Execute” 即可發送該修改後的網路請求(如所示)。Charles 支援我們多次修改和發送該請求,這對於我們和伺服器端調試介面非常方便,如所示:
修改伺服器返回內容
有些時候我們想讓伺服器返回一些指定的內容,方便我們調試一些特殊情況。例如列表頁面為空白的情況,資料異常的情況,部分耗時的網路請求逾時的情況等。如果沒有 Charles,要伺服器配合構造相應的資料顯得會比較麻煩。這個時候,使用 Charles 相關的功能就可以滿足我們的需求。
根據具體的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以達到修改伺服器返回內容的目的。這三者在功能上的差異是:
Map 功能適合長期地將某一些請求重新導向到另一個網路地址或本地檔案。
Rewrite 功能適合對網路請求進行一些正則替換。
Breakpoints 功能適合做一些臨時性的修改。
Breakpoints 功能類似我們在 Xcode 中設定的斷點一樣,當指定的網路請求發生時,Charles 會截獲該請求,這個時候,我們可以在 Charles 中臨時修改網路請求的返回內容。
是我們臨時修改擷取使用者資訊的 API,將頁面資訊進行了更改,修改完成後點擊 “Execute” 則可以讓網路請求繼續進行。
需要注意的是,使用 Breakpoints 功能將網路請求截獲並修改過程中,整個網路請求的計時並不會暫停,所以長時間的暫停可能導致用戶端的請求逾時。
HTTP/HTTPS抓包工具Charles分析