標籤:顯示 方案 file 解決 option 本機 seq 控制 一件事
概述
Charles相當於一個插在伺服器和用戶端之間的“過濾器”。當用戶端向伺服器發起請求的時候,先到charles進行過濾,然後charles在把最終的資料發送給伺服器;
注意:此時charles發給伺服器的資料,不一定是用戶端請求的資料;charles在接到用戶端的請求時可以自由的修改資料,甚至可以直接Block用戶端發的請求
伺服器接收請求後的返回資料,也會先到charles,經過charles過濾後再發給用戶端;同理:用戶端接收的資料,不一定就是伺服器返回的資料,而是charles給的資料;
Charles使用Charles配置
如果想要抓包,第一件事情,就是把charles設定成為本機和服務端之間的”過濾器”;讓所有的網路請求全部經過charles,這樣就可以捕獲並記錄到你請求的內容和返回資料了。
設定iPhone的HTTP代理
啟動 Charles 後,第一次 Charles 會詢問你是否把Charles設定為系統的代理,選擇Allow。這樣就配置完成了。
charles 主介面的介紹
Charles 主要提供兩種查看封包的視圖,分別名為 “Structure” 和 “Sequence”。
– Structure/結構視圖,將網路請求按訪問的網域名稱分類,比如某個網域名稱下有n個資源請求,那麼所有此網域名稱下的請求都會在這裡做一個詳細的分類;
- Sequence/序列視圖,將網路請求按訪問的時間排序,按照你的電腦的發送請求順序進行。
Charles Filter過濾
求多了有些時候會看不過來,對於需要抓取的某個請求,通常情況下,我們需要對網路請求進行過濾,只監控向指定目錄伺服器上發送的請求。對於這種需求,以下幾種辦法:
方案一
Charles 提供了一個簡單的 Filter 功能,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網路請求。
在主介面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如我查看的網域名稱地址
方案二
在 Charles 的功能表列選擇 “Proxy”->”Recording Settings”,然後選擇 Include 欄,選擇添加一個項目,然後填入需要監控的協議,主機地址,連接埠號碼。這樣就可以只截取目標網站的封包了;
Charles 網路環境類比
在開發中中有些bug需要在網路慢的情境中複現。我們可以利用Charles控制手機的網速。
在 Charles 的功能表列選擇 “Proxy”->”Throttle(節流) Settings”,然後勾選 Enable Throttling 選項,選擇添加一個Throttle preset。這樣就可以了;
Charles 抓包內容亂碼解決
在安裝的Charles程式右鍵顯示報內容找到Info.plist檔案JVMOptions在預設的-Xmx512m後面敲空格 添加-Dfile.encoding=UTF-8。
對於其它的一些使用方法可參考:http://zhubangbang.com/charlesproxy
iOS開發系列-Charles