Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器,當瀏覽器連接Charles的代理訪問互聯網時,Charles可以監控瀏覽器發送和接收的所有數據。它允許一個開發者查看所有連接互聯網的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。來自百度百科
將 Charles 設置成系統代理
Charles是通過將自己設置成代理服務器來完成封包截取的,所以使用 Charles 的第一步是將其設置成系統的代理服務器。選擇菜單中的 “Proxy” -> “Windows Proxy” 來將 Charles 設置成系統代理。如下所示:
之后,你就可以看到源源不斷的網絡請求出現在 Charles 的界面中。
注意:
Chrome 和 Firefox 需要設置成使用系統的代理服務器,或者直接將代理服務器設置成127.0.0.1:8888。
Charles 主界面介紹
Charles 主要提供兩種查看封包的視圖,分別名為 “Structure” 和 “Sequence”。可以根據具體的需要在這兩種視圖之前來回切換。
Structure:視圖將網絡請求按訪問的域名分類。
Sequence:視圖將網絡請求按訪問的時間排序。
Charles 提供了簡單的 Filter 功能,輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求。對於某一個具體的網絡請求,你可以查看其詳細的請求內容和響應內容。如果請求內容是 POST 的表單,Charles 會自動幫你將表單進行分項顯示。如果響應內容是 JSON 格式的,那么 Charles 可以自動幫你將 JSON 內容格式化,方便你查看。如果響應內容是圖片,那么 Charles 可以顯示出圖片的預覽。
過濾網絡請求
通常情況下,需要對網絡請求進行過濾,只監控指定服務器的請求。有3種辦法:
方法一:在主界面的中部的 Filter 欄中輸入需要過濾出來的關鍵字。例如我們的服務器的地址是:http://www.jianshu.com , 那么只需要在 Filter 欄中輸入 jianshu 即可。
方法二:菜單欄選擇 “Proxy”->”Recording Settings”,在彈出的窗口中選擇 Include 欄,再點擊“Add”,在彈出的窗口中輸入需要監控的協議,主機地址,端口號等信息,來添加一個項目。如下圖所示:
方法三:在想過濾的網絡請求上右擊,選擇 “Focus”,之后在 Filter 一欄勾選上 Focussed 一項,如下圖所示:
可以臨時性、快速地過濾掉一些沒有通過關鍵字的網絡請求。
截取手機上的網絡封包
- Charles 可以用來截取移動設備上的網絡請求。需要確保電腦和手機能ping通。
- 首先打開Charles的代理功能。具體在菜單欄上選擇 “Proxy”->”Proxy Settings”,輸入代理端口:8888,並勾上“Enable transparent HTTP proxying”選項。
- 在手機的網絡連接中,將HTTP代理切換成手動,填上 Charles 運行所在的電腦的 IP,以及端口號 8888。
- 設置完畢在手機上打開任意程序,此時,可以看到 Charles彈出手機請求連接的確認窗口,點擊 “Allow” 即可完成設置。