1. 程式人生 > >charles 抓包 (二)

charles 抓包 (二)

本文基於charles 抓包 https (1)中的配置完成。

1、移動裝置上的網路請求

開啟要除錯的APP,請求就會先發送到Charles,然後驗證是否允許訪問。

當點選允許後,可以在Proxy -> Access Control Settings裡看到可以訪問此代理伺服器列表
如果不想每換一個手機都要進行驗證,可以配置允許所有手機訪問,加入

0.0.0.0/0(IPv4)或::/0(IPv6)

2、過濾網路請求

  1. 在Sequence介面的中部的Filter欄中填入需要過濾出來的關鍵字。例如我們的伺服器的地址是:*.leautolink.com,那麼只需要在Filter欄中填入leautolink即可。(一般用於臨時過濾)

  2. 在Charles的選單欄選擇"Proxy"->"Recording Settings",然後選擇Include欄,選擇新增一個專案,然後填入需要監控的協議,主機地址,埠號。這樣就可以只擷取目標網站的封包了。如下圖所示:(固定過濾地址)

3、代理轉發(請求重定向)

實際開發時,有這樣的場景,服務端線上版本有bug,你在本地修改程式後,需要模擬實際的線上環境,來驗證程式的正確性,最笨的方法就是讓客戶端修改一下APP的呼叫地址到你本機,然後重新打一個版本供你模擬測試,這樣雖然可以,但每次遇到bug都要這麼做的話,那效率極其低下,然而Charles為我們解決了這個問題。

如果我們想對比一下和線上版本的區別的話,可以講測試的請求重定向到正式環境下。

請求轉發,把呼叫方呼叫的地址轉發到你本機地址的程式進行執行。

右鍵 -> Map Remote ...


並且配置Tools -> Map Romote

除錯app

4、斷點

斷點的功能搞開發不會不知道,在Charles發起一個請求的時候,我們是可以給某個請求打一個斷點的,然後來觀察或者修改請求或者返回的內容,但是在這過程中藥注意請求的超時時間問題。要針對某一個請求設定斷點,只需要在這個請求網址右擊選擇Breakpoints就可以斷點某一個請求了。

5、模擬網速慢

有時候在開發的時候我們想要模擬一下網路慢的情況,這時候Charles他是可以幫助到你的,在Proxy->Throttle Setting,然後選擇Enable Throttling,在Throttle Preset下選擇網路型別即可,具體設定你可以自行拿捏。

6、內容替換

有時候我們會測一下請求的引數不同會帶來不同的返回結果以測試是否達到業務需求,或者需要不同的返回結果來驗證我們對資料的處理是否正確,這時候需要後臺的同事配合,但是有了Charles,我們可以自己把控介面返回來的內容,比如資料的空與否,資料的長短等等。在Tools->Rewrite Settings下