一、Charles是什么颁股?
二凯正、為什么是Charles?
為什么要用抓包工具豌蟋?大家在平常移動(dòng)App調(diào)試測(cè)試中是如何進(jìn)行抓包的?
在我們做開發(fā)與測(cè)試的過程中桑滩,總免不了碰到網(wǎng)絡(luò)問題梧疲,特別是重后臺(tái)的產(chǎn)品,這個(gè)時(shí)候我們往往的處理方法是抓個(gè)網(wǎng)絡(luò)包运准,看看到底應(yīng)用發(fā)送和接收了些什么鬼.....這個(gè)時(shí)候Charles上場(chǎng)了幌氮;Charles是一款屌的不行的截包工具,好用到?jīng)]朋友胁澳。
那么Charles屌在哪里呢该互??韭畸?主要特點(diǎn)如下:
1.支持SSL代理宇智,可以截取分析SSL的請(qǐng)求
2.支持流量控制∫榷。可以模擬慢速網(wǎng)絡(luò)(2G,3G)随橘,以及等待時(shí)間較長(zhǎng)的請(qǐng)求。
3.支持AJAX調(diào)試锦庸』幔可以自動(dòng)把JSON或者XML數(shù)據(jù)格式化,方便查看。
4.支持重發(fā)網(wǎng)絡(luò)請(qǐng)求萝嘁,方便后端調(diào)試梆掸。
5.支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)。
6.支持網(wǎng)絡(luò)請(qǐng)求的截取和動(dòng)態(tài)修改牙言。
7.最重要的一個(gè)優(yōu)點(diǎn)就是有不同平臺(tái)的版本(Mac酸钦,Windows、Linux)即學(xué)一個(gè)打遍天下嬉挡。
三钝鸽、Charles基本工作原理
charles是通過網(wǎng)絡(luò)代理來進(jìn)行抓包的,下面先了解一下http代理的原理:
1.普通http請(qǐng)求過程
2.加入了Charles的HTTP代理的請(qǐng)求與響應(yīng)過程
四庞钢、Charles的下載與安裝過程
1.官網(wǎng)下載地址:
2.Mac下安裝:
是一個(gè)安裝包是一個(gè)dmg后綴的文件拔恰。打開后將Charles拖到Application目錄下即完成安裝。
3.Windows下安裝:
下載后直接雙擊根據(jù)安裝向?qū)б徊揭徊桨惭b即可
五基括、Http抓包操作步驟
Step 1:開啟Charleshttp代理颜懊;
Step 2:手機(jī)端Wifi添加代理;
Step 3:開啟Charles錄制功能风皿;
Step 4:?jiǎn)?dòng)應(yīng)用開始抓包河爹;
Step 5:分析抓取的數(shù)據(jù)包。
Step 1: 開啟Charleshttp代理
a.設(shè)置Charles代理
a.激活http代理功能
Step 2: 手機(jī)端Wifi添加代理
a. Android手機(jī):
1.在手機(jī)端打開你的Wifi設(shè)置然后長(zhǎng)按已經(jīng)連接的Wifi在彈出來的菜單中選擇【修改網(wǎng)絡(luò)】
2.溝上[顯示高級(jí)]選項(xiàng)--【手動(dòng)】
3.輸入代理服務(wù)器的IP與端口桐款,IP即安裝了Charles的電腦IP地址咸这,端口就是前面一步設(shè)置Charles時(shí)所設(shè)置的端口。
b. iOS手機(jī):
1.點(diǎn)擊你所連接的wifi
2.輸入代理服務(wù)器的IP與端口魔眨,
IP即安裝了Charles的電腦IP地址媳维,端口就是前面一步設(shè)置Charles時(shí)所設(shè)置的端口。
Step 3:開啟Charles錄制功能
Step 4:?jiǎn)?dòng)應(yīng)用開始抓包
Step 5:分析抓取的數(shù)據(jù)包
1.Charles 主要提供兩種查看封包的視圖遏暴,分別名為 “Structure”和 “Sequence”:
a.Structure 視圖將網(wǎng)絡(luò)請(qǐng)求按訪問的域名分類侄刽;
b.Sequence 視圖將網(wǎng)絡(luò)請(qǐng)求按訪問的時(shí)間排序。
2.大家可以根據(jù)具體的需要在這兩種視圖之前來回切換朋凉。請(qǐng)求多了有些時(shí)候會(huì)看不過來州丹,Charles提供了一個(gè)簡(jiǎn)單的Filter功能,可以輸入關(guān)鍵字來快速篩選出URL 中帶指定關(guān)鍵字的網(wǎng)絡(luò)請(qǐng)求杂彭。
3.對(duì)于某一個(gè)具體的網(wǎng)絡(luò)請(qǐng)求墓毒,你可以查看其詳細(xì)的請(qǐng)求內(nèi)容和響應(yīng)內(nèi)容。如果請(qǐng)求內(nèi)容是POST 的表單盖灸,Charles 會(huì)自動(dòng)幫你將表單進(jìn)行分項(xiàng)顯示蚁鳖。如果響應(yīng)內(nèi)容是 JSON 格式的,那么 Charles可以自動(dòng)幫你將JSON 內(nèi)容格式化赁炎,方便你查看醉箕。如果響應(yīng)內(nèi)容是圖片钾腺,那么 Charles可以顯示出圖片的預(yù)覽。
六讥裤、Https抓包操作步驟
Step 1:了解一下https的基本原理放棒;
Step 2:在手機(jī)端安裝SSL證書;
Step 3:激活Charles的SSL代理己英;
Step 4:將指定的URL請(qǐng)求開啟SSL代理功能
Step 5:其他步驟與Http抓包相同间螟,請(qǐng)參考四、Http抓包操作步驟
Step 1:了解一下https的基本原理损肛;
詳細(xì)說明厢破,請(qǐng)參考:
http://blog.csdn.net/clh604/article/details/22179907
Step 2:在手機(jī)端安裝SSL證書
1.將證書文件從Charles導(dǎo)出
2.然后通過adb或者其他工具將其復(fù)制到手機(jī)的SD卡中。
3.將證書文件導(dǎo)入Android手機(jī)
4.在iOS手機(jī)端進(jìn)行證書配置治拿,在手機(jī)瀏覽器中輸入CA證書下載鏈接地址打開摩泪。
CA證書下載鏈接:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/
證書下載完成后,會(huì)自己提示安裝劫谅,和企業(yè)級(jí)開發(fā)者證書一樣见坑,比較容易搞定。這樣就可以抓取https的數(shù)據(jù)接口包了捏检。
Step 3:激活Charles的SSL代理
Step 4:將指定的URL請(qǐng)求開啟SSL代理功能
七荞驴、Charles進(jìn)階---修改請(qǐng)求也響應(yīng)的內(nèi)容
Step 1:設(shè)置Charless斷點(diǎn)。
Step 2:對(duì)指定的URL開啟斷點(diǎn)功能贯城。
Step 3:編輯請(qǐng)求與響應(yīng)的內(nèi)容熊楼。
Step 1:設(shè)置Charless斷點(diǎn)
Step 2:對(duì)指定的URL開啟斷點(diǎn)功能。
Step 3:編輯請(qǐng)求與響應(yīng)的內(nèi)容。
a.編輯請(qǐng)求內(nèi)容
b.編輯服務(wù)器響應(yīng)的內(nèi)容
八、Charles進(jìn)階---弱網(wǎng)模擬
1.菜單中選擇【Proxy】--->【Throttle Settings..】---> 激活【Enable Throttling】乡括。
2.在Throttle Configuration設(shè)置弱網(wǎng)的參數(shù)蚀浆。
3.以下是各種網(wǎng)制式的速率參考文檔:
移動(dòng)網(wǎng)絡(luò)制式與網(wǎng)速的參考文檔