Charles抓包使用教程


charles相當於一個插在服務器和客戶端之間的“過濾器”;

當客戶端向服務器發起請求的時候,先到charles進行過濾,然后charles在把最終的數據發送給服務器;

注意:此時charles發給服務器的數據,不一定是客戶端請求的數據;charles在接到客戶端的請求時可以自由的修改數據,甚至可以直接Block客戶端發的請求;

服務器接收請求后的返回數據,也會先到charles,經過charles過濾后再發給客戶端;

同理:客戶端接收的數據,不一定就是服務器返回的數據,而是charles給的數據;

正因為上面的原理,所以charles能實現的功能,對前端開發者來說非常有吸引力,相當於請求和響應都可控的,而且charles為了控制更加方面,提供很多簡潔的操作

 

1.下載安裝

 https://www.charlesproxy.com

2.設置代理

點擊“代理-代理設置”,設置一個端口

 

手機連接wifi后,配置該wifi代理為手動,代理主機輸入本機電腦的ip和此端口,就可以正常抓包

3.設置抓取特定ip

方法一:在 Charles 的菜單欄選擇 “Proxy”->”Recording Settings”,然后選擇 Include 欄,選擇添加一個項目,然后填入需要監控的協議,主機地址,端口號。這樣就可以只截取目標網站的封包了;

方法二:在主界面的中部的 Filter 欄中填入需要過濾出來的關鍵字。

 

 4.模擬接口發送請求

△Map 功能適合長期地將某一些請求重定向到另一個網絡地址或本地文件。
△Rewrite 功能適合對網絡請求進行一些正則替換。
△Breakpoints 功能適合做一些臨時性的修改。

先新建一個JSON文件,取名 test.json,輸入一個簡單的測試數組

[
“hello”,
“world”
]

打開Charles,Tools - Map Local

 

 5.charles重復發送一個網絡請求&同時發送N次

重發網絡請求的目的:后端調試的過程中,一直在客戶端進行點點點比較麻煩,此時直接發送請求比較方便查看調試后的結果(方便后端調試)

1.重復發送一個請求(有兩種方法)

(1)選定該請求,右鍵選擇repeat,則會將請求重新發送一遍

(2)選定該請求,直接點擊導航欄上面的重復按鈕,下圖所示

 

 

 

2.讓請求同時發送N次

目的是判斷多次發送請求時,服務器的響應時間如何。

右鍵選中該請求,repeat下面還有一個Repeat Advanced選項,其實該選項也是重復發送請求的一種,可以同時發送多個請求。點擊ok之后會回到主頁面可觀察到請求被發送了10次。

 

 

 6.撰寫請求

可以修改、增加、刪除參數名、參數值,請求頭等等

 

 

7.斷點--可以看到 修改過后的請求返回是什么效果,達到測試的目的。

Breakpoints 功能類似我們在 Xcode 中設置的斷點一樣,當指定的網絡請求發生時,Charles 會截獲該請求,這個時候,我們可以在 Charles 中臨時修改網絡請求的返回內容。

對要打斷點的接口右鍵,選擇【Breakpoints】

在工具欄可以查看打上斷點的url

 

 雙擊此url,修改查詢為*,設置可修改請求和響應

點擊ok, 重新再跑一下接口。 當跑到設置斷點的接口時,網頁會暫停,這個時候Charles進入breakpoints

點擊Edit Request 修改請求參數。這里根據你要測試的數據來修改

 

 修改好參數后,點擊Execute (執行)。 另外 Abort (中止), Cancel (取消)

點擊執行后,來到返回的頁面,這個時候在Charles可以查看返回的數據。也可以對其進行修改,好了之后 點擊 Execute

 8.模擬慢速網絡

選擇 “Proxy”->”Throttle Setting” (節流設置)項,在之后彈出的對話框中,我們可以勾選上 “Enable Throttling”,並且可以設置 Throttle Preset 的類型。如下圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM