一、準備工作
簡介
Charles是一款代理服務器,通過將自己設置成系統(電腦或者瀏覽器)的網絡訪問代理服務器,然後截取請求和請求結果進行分析抓包。該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用。安裝Charles的時候要先裝好Java環境。
需要java環境(安裝地址):
https://www.oracle.com/technetwork/java/javase/downloads/index.html
二、下載與安裝
Charles是在 Mac 下常用的網絡封包截取工具,在做移動開發時,爲了調試與服務器端的網絡通訊協議,需要截取網絡封包來分析。
官網下載地址:https://www.charlesproxy.com
Charles 是收費軟件,可以免費試用 30 天。試用期過後,未付費的用戶仍然可以繼續使用,但是每次使用時間不能超過 30 分鐘,並且啓動時將會有 10 秒種的延時。
(1)官方安裝破解方法:
在Help窗口內選擇Register Charles:
// Charles Proxy License
// 適用於Charles任意版本的註冊碼。
// Charles 4.2.7目前是最新版,親測可用。
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
(2)安裝下載破解版,安裝即可使用
http://xclient.info/s/charles.html?t=4d93195475bee25eacad7e2e5af2f76da51df76b#versions (內有詳細教程)
三、主要功能使用
(1)初步認識
Charles 提供兩種查看封包的視圖, “Structure” 和 “Sequence”。
1、Structure 視圖將網絡請求按訪問的域名分類。
2、Sequence 視圖將網絡請求按訪問的時間排序。
可以根據具體的需要在這兩種視圖之前來回切換。請求多了有些時候會看不過來,Charles 提供了一個簡單的 Filter 功能,可以輸入關鍵字來快速篩選出 URL
(2)HTTP & HTTPS抓包(網頁)
抓取 Http 和 Https 的請求和響應。
1.http:
啓動後,將 Charles 設置成系統代理,選擇菜單中的 “Proxy” –> “macOS Proxy” 將 Charles 設置成系統代理。
通過瀏覽器請求的網址都會出現在這裏。點擊具體的請求後出現request和response等信息。
2.https:
如果是https請求出現的是亂碼,這時候你就需要安裝Charles的CA證書了,點擊 Charles 的菜單,選擇 “Help”-> “SSL Proxying”-> “Install Charles Root Certificate”,
然後在鑰匙串中搜索charles,默認該證書是不被信任的,在該證書上右鍵->”顯示簡介”或雙擊證書,點擊信任欄,手動改爲始終信任。
Charles設置Proxy
Proxy -> SSL Proxying Settings
勾選Enable SSL Proxying,點擊Add
注意:
(1)未設置前https的標識都有<unknown>
(2)Host設置,不知道具體的API地址,可設置爲" * ", 代表所有。
(3)Port設置,設置時Port默認都是443。
(3)手機抓包
可以抓手機端訪問的資源。
Charles 設置:
要截取 手機網絡請求,首先需要將 Charles 的代理功能打開。在 Charles 的菜單欄上選擇 “Proxy”–>“Proxy Settings”,填入代理端口 8888,並且勾上 “Enable transparent HTTP proxying” 就完成在 Charles 上的設置。
iOS手機:
在 iPhone 的 “ 設置 ”–>“ 無線局域網 ” 中,找到當前連接的 wifi 名,點擊右邊的詳情鍵,在其最底部有「HTTP 代理」一項,將其切換成手動,填上 Charles 運行所在的電腦的 IP,以及端口號 8888。
Android 手機:
“設置”->”WLAN”,選擇與電腦相同的WiFi,勾選”顯示高級選項”,並將代理設置爲手動。然後填上 電腦的 IP,以及端口號 8888
如果要在 iOS 或 Android 機器上截取 Https 協議的通訊內容,還需要在手機上安裝相應的證書。點擊 Charles 的頂部菜單,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然後就可以看到 Charles 彈出的簡單的安裝教程。
然後手機訪問網站時會有彈窗,點擊Allow
(4)修改網絡請求參數
網絡請求的截獲和動態修改。
了調試服務器的接口,需反覆嘗試不同參數的網絡請求。Charles 可以方便地提供網絡請求的修改和重發功能。選中以往的網絡請求,工具欄中點擊 “Edit”,即可創建一個可編輯的網絡請求。
(5)模擬慢速網絡
支持模擬慢速網絡,主要是模仿手機上的2G/3G/4G的訪問流程。
在測試時想要模擬網絡慢的情況,在Proxy->Throttle Setting,然後選擇Enable Throttling,在Throttle Preset下選擇網絡類型即可。
“Only for selected hosts” 項代表:模擬指定網站的慢速網絡。
(6)設置斷點
在Charles發起一個請求的時候,可以給某個請求打一個斷點,來觀察或者修改請求或者返回的內容。只需要在請求網址右擊選擇Breakpoints,然後點擊斷點按鈕。
(7)服務器壓力測試
使用 Charles 的 Repeat 功能來簡單地測試服務器的併發處理能力,在打壓的網絡請求上(POST 或 GET 請求均可)右擊,然後選擇 「Repeat Advanced」菜單項,選擇打壓的併發線程數以及打壓次數,即可開始打壓。
(8)過濾
在 Charles 的菜單欄選擇 Proxy->Recording Settings,然後選擇 Include 欄,選擇Add,然後填入需要監控的協議,主機地址,端口號,進行過濾。