一帘腹、準(zhǔn)備工作
簡(jiǎn)介
Charles是一款代理服務(wù)器耽梅,通過(guò)將自己設(shè)置成系統(tǒng)(電腦或者瀏覽器)的網(wǎng)絡(luò)訪(fǎng)問(wèn)代理服務(wù)器挨约,然后截取請(qǐng)求和請(qǐng)求結(jié)果進(jìn)行分析抓包款慨。該軟件是用Java寫(xiě)的儒飒,能夠在Windows,Mac檩奠,Linux上使用桩了。安裝Charles的時(shí)候要先裝好Java環(huán)境。
需要java環(huán)境(安裝地址):
https://www.oracle.com/technetwork/java/javase/downloads/index.html
二埠戳、下載與安裝
Charles是在 Mac 下常用的網(wǎng)絡(luò)封包截取工具井誉,在做移動(dòng)開(kāi)發(fā)時(shí),為了調(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議整胃,需要截取網(wǎng)絡(luò)封包來(lái)分析颗圣。
官網(wǎng)下載地址:https://www.charlesproxy.com
Charles 是收費(fèi)軟件,可以免費(fèi)試用 30 天屁使。試用期過(guò)后在岂,未付費(fèi)的用戶(hù)仍然可以繼續(xù)使用,但是每次使用時(shí)間不能超過(guò) 30 分鐘蛮寂,并且啟動(dòng)時(shí)將會(huì)有 10 秒種的延時(shí)蔽午。
(1)官方安裝破解方法:
在Help窗口內(nèi)選擇Register Charles:// Charles Proxy License
// 適用于Charles任意版本的注冊(cè)碼。
// Charles 4.2.7目前是最新版酬蹋,親測(cè)可用及老。
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
(2)安裝下載破解版,安裝即可使用
http://xclient.info/s/charles.html?t=4d93195475bee25eacad7e2e5af2f76da51df76b#versions (內(nèi)有詳細(xì)教程)
三范抓、主要功能使用
(1)初步認(rèn)識(shí)
Charles 提供兩種查看封包的視圖骄恶, “Structure” 和 “Sequence”。
1匕垫、Structure 視圖將網(wǎng)絡(luò)請(qǐng)求按訪(fǎng)問(wèn)的域名分類(lèi)僧鲁。
2、Sequence 視圖將網(wǎng)絡(luò)請(qǐng)求按訪(fǎng)問(wèn)的時(shí)間排序年缎。
可以根據(jù)具體的需要在這兩種視圖之前來(lái)回切換悔捶。請(qǐng)求多了有些時(shí)候會(huì)看不過(guò)來(lái),Charles 提供了一個(gè)簡(jiǎn)單的 Filter 功能单芜,可以輸入關(guān)鍵字來(lái)快速篩選出 URL
(2)HTTP & HTTPS抓包(網(wǎng)頁(yè))
抓取 Http 和 Https 的請(qǐng)求和響應(yīng)蜕该。
1.http:
通過(guò)瀏覽器請(qǐng)求的網(wǎng)址都會(huì)出現(xiàn)在這里馋缅。點(diǎn)擊具體的請(qǐng)求后出現(xiàn)request和response等信息。
2.https:
如果是https請(qǐng)求出現(xiàn)的是亂碼绢淀,這時(shí)候你就需要安裝Charles的CA證書(shū)了萤悴,點(diǎn)擊 Charles 的菜單,選擇 “Help”-> “SSL Proxying”-> “Install Charles Root Certificate”皆的,
Charles設(shè)置Proxy
Proxy -> SSL Proxying Settings
勾選Enable SSL Proxying,點(diǎn)擊Add
注意:
(1)未設(shè)置前https的標(biāo)識(shí)都有<unknown>
(2)Host設(shè)置楞抡,不知道具體的API地址伟众,可設(shè)置為" * ", 代表所有。
(3)Port設(shè)置召廷,設(shè)置時(shí)Port默認(rèn)都是443凳厢。
(3)手機(jī)抓包
可以抓手機(jī)端訪(fǎng)問(wèn)的資源。
Charles 設(shè)置:
要截取 手機(jī)網(wǎng)絡(luò)請(qǐng)求竞慢,首先需要將 Charles 的代理功能打開(kāi)先紫。在 Charles 的菜單欄上選擇 “Proxy”–>“Proxy Settings”,填入代理端口 8888梗顺,并且勾上 “Enable transparent HTTP proxying” 就完成在 Charles 上的設(shè)置泡孩。
iOS手機(jī):
在 iPhone 的 “ 設(shè)置 ”–>“ 無(wú)線(xiàn)局域網(wǎng) ” 中,找到當(dāng)前連接的 wifi 名寺谤,點(diǎn)擊右邊的詳情鍵仑鸥,在其最底部有「HTTP 代理」一項(xiàng),將其切換成手動(dòng)变屁,填上 Charles 運(yùn)行所在的電腦的 IP眼俊,以及端口號(hào) 8888。
Android 手機(jī):
“設(shè)置”->”WLAN”粟关,選擇與電腦相同的WiFi疮胖,勾選”顯示高級(jí)選項(xiàng)”,并將代理設(shè)置為手動(dòng)闷板。然后填上 電腦的 IP澎灸,以及端口號(hào) 8888
如果要在 iOS 或 Android 機(jī)器上截取 Https 協(xié)議的通訊內(nèi)容,還需要在手機(jī)上安裝相應(yīng)的證書(shū)遮晚。點(diǎn)擊 Charles 的頂部菜單性昭,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 彈出的簡(jiǎn)單的安裝教程县遣。
然后手機(jī)訪(fǎng)問(wèn)網(wǎng)站時(shí)會(huì)有彈窗糜颠,點(diǎn)擊Allow
(4)修改網(wǎng)絡(luò)請(qǐng)求參數(shù)
網(wǎng)絡(luò)請(qǐng)求的截獲和動(dòng)態(tài)修改汹族。
了調(diào)試服務(wù)器的接口,需反復(fù)嘗試不同參數(shù)的網(wǎng)絡(luò)請(qǐng)求其兴。Charles 可以方便地提供網(wǎng)絡(luò)請(qǐng)求的修改和重發(fā)功能顶瞒。選中以往的網(wǎng)絡(luò)請(qǐng)求,工具欄中點(diǎn)擊 “Edit”元旬,即可創(chuàng)建一個(gè)可編輯的網(wǎng)絡(luò)請(qǐng)求榴徐。
(5)模擬慢速網(wǎng)絡(luò)
支持模擬慢速網(wǎng)絡(luò),主要是模仿手機(jī)上的2G/3G/4G的訪(fǎng)問(wèn)流程法绵。
“Only for selected hosts” 項(xiàng)代表:模擬指定網(wǎng)站的慢速網(wǎng)絡(luò)兴垦。
(6)設(shè)置斷點(diǎn)
在Charles發(fā)起一個(gè)請(qǐng)求的時(shí)候徙赢,可以給某個(gè)請(qǐng)求打一個(gè)斷點(diǎn),來(lái)觀察或者修改請(qǐng)求或者返回的內(nèi)容探越。只需要在請(qǐng)求網(wǎng)址右擊選擇Breakpoints狡赐,然后點(diǎn)擊斷點(diǎn)按鈕。
(7)服務(wù)器壓力測(cè)試
使用 Charles 的 Repeat 功能來(lái)簡(jiǎn)單地測(cè)試服務(wù)器的并發(fā)處理能力钦幔,在打壓的網(wǎng)絡(luò)請(qǐng)求上(POST 或 GET 請(qǐng)求均可)右擊枕屉,然后選擇 「Repeat Advanced」菜單項(xiàng),選擇打壓的并發(fā)線(xiàn)程數(shù)以及打壓次數(shù)鲤氢,即可開(kāi)始打壓搀擂。