簡(jiǎn)介
Charles是目前最強(qiáng)大的http調(diào)試工具之一除秀,在網(wǎng)絡(luò)開(kāi)發(fā)中使用它作為分析工具,可以很大程度上提高我們的開(kāi)發(fā)效率,
Charles是收費(fèi)軟件瓢剿,可以試用。有條件的建議用正版悠轩,當(dāng)然天朝也不乏破解版间狂。
安裝
下載好后,解壓打開(kāi)火架,然后右擊鉴象、顯示包內(nèi)容。如圖
將如下文件夾中的jar包替換為我們破解文件夾中的jar包:
這樣就破解了何鸡,然后就能happy的使用了
配置
安裝證書(shū)
按上面指示流程打開(kāi) 鑰匙串訪問(wèn)纺弊,搜索 charles 可以看到剛才安裝的證書(shū),查看證書(shū)狀態(tài)是否已經(jīng)被信任(名稱(chēng)有紅色標(biāo)記)。
添加證書(shū)時(shí)骡男,選擇始終信任
在Mac上抓取網(wǎng)絡(luò)請(qǐng)求
對(duì)于Mac系統(tǒng)而言淆游,打開(kāi)charles之后,默認(rèn)就已經(jīng)對(duì)系統(tǒng)進(jìn)行了代理,如果沒(méi)有犹菱,則需要在菜單欄的Proxy上勾選上Mac OS X Proxy拾稳。
這時(shí)候就能抓取Mac的網(wǎng)絡(luò)請(qǐng)求了
在移動(dòng)設(shè)備上進(jìn)行抓包
在移動(dòng)設(shè)備上抓取網(wǎng)絡(luò)請(qǐng)求,我們的移動(dòng)設(shè)備必須和電腦在同一網(wǎng)段:
1腊脱、電腦和移動(dòng)設(shè)備同時(shí)連接同一網(wǎng)段的網(wǎng)絡(luò)访得。
2、是電腦共享wifi出來(lái)陕凹,然后用移動(dòng)設(shè)備區(qū)連接悍抑,
設(shè)置Http代理
設(shè)置HTTP網(wǎng)絡(luò)請(qǐng)求的端口號(hào)為8888并設(shè)置為可用的。如下圖:
移動(dòng)設(shè)備的設(shè)置:
如圖:
設(shè)置wifi的HTTP代理為手動(dòng)捆姜,服務(wù)器地址為Mac的ip 地址(這個(gè)地址就不用說(shuō)怎么找了吧)
端口號(hào)為8888(這個(gè)端口號(hào)就是之前在Charles上設(shè)置的)
SSL
如果要抓取有SSl協(xié)議的網(wǎng)絡(luò)請(qǐng)求传趾,這時(shí)候我們還需要安裝一個(gè)證書(shū)
方法如下:
iOS設(shè)備
將iOS設(shè)備設(shè)置為在“設(shè)置”應(yīng)用程序> Wifi設(shè)置中將Charles用作其HTTP代理。
打開(kāi)Safari并瀏覽到https://chls.pro/ssl泥技。Safari會(huì)提示你安裝SSL證書(shū)浆兰。
如果您使用的是iOS 10.3或更高版本,請(qǐng)打開(kāi)Settings.app并導(dǎo)航至常規(guī)>關(guān)于>證書(shū)信任設(shè)置珊豹,然后查找Charles Proxy證書(shū)簸呈,并將其打開(kāi)以啟用對(duì)其的完全信任(iOS中有關(guān)此更改的更多信息10)。
現(xiàn)在您應(yīng)該可以使用SSL Proxying與Charles訪問(wèn)SSL網(wǎng)站店茶。
Charles在3.11.4發(fā)行版中支持App Transport Security(ATS)蜕便。
iOS模擬器
退出你的iOS模擬器。啟動(dòng)Charles并轉(zhuǎn)到幫助菜單贩幻。選擇“SSL代理>在iOS模擬器中安裝Charles Root證書(shū)”項(xiàng)目轿腺。這將安裝您的查爾斯根證書(shū)到您的所有iOS模擬器。現(xiàn)在丛楚,當(dāng)您啟動(dòng)iOS模擬器時(shí)族壳,您應(yīng)該可以使用SSL Proxying與Charles訪問(wèn)SSL網(wǎng)站。
SSL 協(xié)議設(shè)置:
在proxy菜單中選中proxy Setting趣些。 選中SSL Proxy選項(xiàng)卡仿荆。點(diǎn)擊add添加,然后填寫(xiě)服務(wù)器地址和端口號(hào)坏平。再選中Enable SSL Proxy 選項(xiàng)拢操。
注意: 如果iOS模擬器上抓不到請(qǐng)求包,重啟模擬器即可舶替。
Charles的更多應(yīng)用
過(guò)濾網(wǎng)絡(luò)請(qǐng)求
有時(shí)候我們只想抓取某個(gè)主機(jī)的網(wǎng)絡(luò)請(qǐng)求(比如測(cè)試服務(wù)器)令境,我們可以設(shè)置過(guò)濾網(wǎng)絡(luò),在Proxy菜單下的Recording Setting中選擇include標(biāo)簽顾瞪,可以在里面添加一個(gè)白名單舔庶,這樣Charles就只抓取這個(gè)主機(jī)下的請(qǐng)求了
如上圖:點(diǎn)擊Add就出現(xiàn)下圖
幾個(gè)字段的含義:
Protocol : 協(xié)議(Http或https)
Host : 主機(jī)(服務(wù)器)地址
Port : 端口號(hào)
Path : 路徑
模擬限速網(wǎng)絡(luò)
很多時(shí)候返劲,我們需要測(cè)試在網(wǎng)絡(luò)不佳時(shí)應(yīng)用請(qǐng)求的相關(guān)數(shù)據(jù),我們可以模擬設(shè)置限速網(wǎng)絡(luò)栖茉,在Proxy菜單中的Throttle Settings中將篮绿,Enable Throttling勾選,并可以在下面進(jìn)行網(wǎng)路設(shè)置吕漂,only for selected host可以設(shè)置一個(gè)指定的主機(jī)訪問(wèn)進(jìn)行限制網(wǎng)絡(luò)亲配。
修改網(wǎng)絡(luò)信息,多次請(qǐng)求
在測(cè)試接口時(shí)惶凝,有時(shí)候我們需要反復(fù)進(jìn)行不同參數(shù)的接口請(qǐng)求吼虎,Charles也支持我們進(jìn)行請(qǐng)求參數(shù)的修改和多次請(qǐng)求,在請(qǐng)求上點(diǎn)擊右鍵苍鲜,現(xiàn)則edit:
如圖:其中的參數(shù)思灰,請(qǐng)求類(lèi)型等我們都可以修改,之后點(diǎn)擊execute進(jìn)行重新請(qǐng)求
批量請(qǐng)求選擇repeat advanced...
iterations:10 //請(qǐng)求次數(shù)
concurrency:2 //請(qǐng)求的并發(fā)數(shù)
show results in new session //新建一個(gè)session窗口
delays //請(qǐng)求延遲