第一章.Charles說明
Charles通常用來截取本地上的網(wǎng)絡(luò)封包,但是當(dāng)我們需要時材彪,我們也可以用來截取其它設(shè)備上的網(wǎng)絡(luò)請求。第三章將以iPhone為例,講解如何進行相應(yīng)操作则拷;
Charles是在Mac下常用的網(wǎng)絡(luò)封包截取工具,在做移動開發(fā)時曹鸠,我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議煌茬,常常需要截取網(wǎng)絡(luò)封包來分析。
Charles通過將自己設(shè)置成系統(tǒng)的網(wǎng)絡(luò)訪問代理服務(wù)器彻桃,使得所有的網(wǎng)絡(luò)訪問請求都通過它來完成坛善,從而實現(xiàn)了網(wǎng)絡(luò)封包的截取和分析。
除了在做移動開發(fā)中調(diào)試端口外叛薯,Charles也可以用于分析第三方應(yīng)用的通訊協(xié)議浑吟。配合Charles的SSL功能,Charles還可以分析Https協(xié)議耗溜。
Charles是收費軟件组力,可以免費試用30天。試用期過后抖拴,未付費的用戶仍然可以繼續(xù)使用燎字,但是每次使用時間不能超過30分鐘腥椒,并且啟動時將會有10秒種的延時。因此候衍,該付費方案對廣大用戶還是相當(dāng)友好的笼蛛,即使你長期不付費,也能使用完整的軟件功能蛉鹿。只是當(dāng)你需要長時間進行封包調(diào)試時滨砍,會因為Charles強制關(guān)閉而遇到影響。
Charles主要的功能包括:
? ? ? ①截取Http和Https網(wǎng)絡(luò)封包妖异。
? ? ? ②支持重發(fā)網(wǎng)絡(luò)請求惋戏,方便后端調(diào)試。
? ? ?③支持修改網(wǎng)絡(luò)請求參數(shù)他膳。
? ? ?④支持網(wǎng)絡(luò)請求的截獲并動態(tài)修改响逢。
? ? ?⑤支持模擬慢速網(wǎng)絡(luò)。
第二章.Charles下載
去Charles的官方網(wǎng)站(http://www.charlesproxy.com)下載最新版的Charles安裝包棕孙,是一個dmg后綴的文件舔亭。打開后將Charles拖到Application目錄下即完成安裝。
第三章.Charles上的設(shè)置
要截取iPhone上的網(wǎng)絡(luò)請求蟀俊,我們首先需要將Charles的代理功能打開钦铺。在Charles的菜單欄上選擇“Proxy”–>“Proxy Settings”,填入代理端口8888肢预,并且勾上“Enable transparent HTTP proxying”就完成了在Charles上的設(shè)置职抡。如下圖1所示:
第四章.Charles上Ip設(shè)置
首先我們需要獲取Charles運行所在電腦的IP地址;
Charles 的頂部菜單的 “Help”–>“Local IP Address”误甚,即可在彈出的對話框中看到 IP 地址缚甩,如下圖3所示:
第五章.Iphone上IP設(shè)置
1、在iPhone的“設(shè)置”–>“無線局域網(wǎng)”中窑邦,可以看到當(dāng)前連接的wifi名擅威,通過點擊右邊的詳情鍵,可以看到當(dāng)前連接上的wifi的詳細(xì)信息冈钦,包括IP地址郊丛,子網(wǎng)掩碼等信息。在其最底部有「HTTP代理」一項瞧筛,我們將其切換成手動厉熟,然后填上Charles運行所在的電腦的IP,以及端口號8888较幌,如下圖所示:
2揍瑟、設(shè)置好之后,我們打開iPhone上的任意需要網(wǎng)絡(luò)通訊的程序乍炉,就可以看到Charles彈出iPhone請求連接的確認(rèn)菜單(如下圖所示)绢片,點擊“Allow”即可完成設(shè)置滤馍。
第六章.截取Https通訊信息
1、安裝證書
如果你需要截取分析Https協(xié)議相關(guān)的內(nèi)容底循。那么需要安裝Charles的CA證書巢株。具體步驟如下。
1.1.在電腦上安裝證書
點擊Charles的頂部菜單熙涤,選擇“Help” –> “SSL Proxying” –> “Install
Charles Root Certificate”阁苞,然后輸入系統(tǒng)的帳號密碼,即可在KeyChain看到添加好的證書祠挫。如下圖所示:
安裝以下證書
1.2.在手機上下載證書
其次我們需要在手機上打開默認(rèn)瀏覽器猬错,在瀏覽器中輸入http://charlesproxy.com/getssl,進行下載SSL證書茸歧。
注意:
即使是安裝完證書之后,Charles默認(rèn)也并不截取Https網(wǎng)絡(luò)通訊的信息显沈,如果你想對截取某個網(wǎng)站上的所有Https網(wǎng)絡(luò)請求软瞎,可以在該請求上右擊,選擇SSL proxy拉讯,如下圖所示:
第七章.Charles界面說明
Charles主要提供兩種查看封包的視圖涤浇,分別名為“Structure”和“Sequence”。
1魔慷、Structure視圖將網(wǎng)絡(luò)請求按訪問的域名分類只锭。
2、Sequence視圖將網(wǎng)絡(luò)請求按訪問的時間排序院尔。
大家可以根據(jù)具體的需要在這兩種視圖之前來回切換蜻展。請求多了有些時候會看不過來,Charles提供了一個簡單的Filter功能邀摆,可以輸入關(guān)鍵字來快速篩選出URL中帶指定關(guān)鍵字的網(wǎng)絡(luò)請求纵顾。
對于某一個具體的網(wǎng)絡(luò)請求,你可以查看其詳細(xì)的請求內(nèi)容和響應(yīng)內(nèi)容栋盹。如果請求內(nèi)容是POST的表單施逾,Charles會自動幫你將表單進行分項顯示。如果響應(yīng)內(nèi)容是JSON格式的例获,那么Charles可以自動幫你將JSON內(nèi)容格式化汉额,方便你查看。如果響應(yīng)內(nèi)容是圖片榨汤,那么Charles可以顯示
出圖片的預(yù)覽