Charles這個(gè)工具我想對(duì)于Android和iOS開(kāi)發(fā)的小伙伴來(lái)說(shuō)并不陌生,很多從機(jī)構(gòu)學(xué)習(xí)的小伙伴做項(xiàng)目都是利用chares這個(gè)工具去獲取數(shù)據(jù),從而構(gòu)成APP的,而且它也是測(cè)試工程師喜愛(ài)的工具缭贡。對(duì)于了解Charles炉擅,我們首先想到的幾個(gè)問(wèn)題應(yīng)該就是:
- 什么是Charles?
- Charles這個(gè)工具如何配置環(huán)境和安裝阳惹?
- Charles能為我們做什么谍失?
什么是Charles?
Charles,天朝的iOS兄弟也把它叫做青花瓷,是一個(gè)HTTP代理服務(wù)器,HTTP監(jiān)視器,反轉(zhuǎn)代理服務(wù)器莹汤,當(dāng)瀏覽器連接Charles的代理訪問(wèn)互聯(lián)網(wǎng)時(shí)快鱼,Charles可以監(jiān)控瀏覽器發(fā)送和接收的所有數(shù)據(jù)。它允許一個(gè)開(kāi)發(fā)者查看所有連接互聯(lián)網(wǎng)的HTTP通信纲岭,這些包括request, response和HTTP headers (包含cookies與caching信息)抹竹。該軟件是用Java寫(xiě)的,能夠在Windows止潮,Mac窃判,Linux上使用。
Charles這個(gè)工具如何配置環(huán)境和安裝喇闸?
官網(wǎng)下載:https://www.charlesproxy.com/download/
免費(fèi)版下載:http://xclient.info/search/s/charles/
Charles安裝包可以分為兩種:一種是官網(wǎng)正版的袄琳,但是它只有30天的試用期,過(guò)了三十天沒(méi)過(guò)30分鐘就得重新打開(kāi)一次燃乍。另外一種是破解版跨蟹,網(wǎng)上流傳的Charles破解版只有4.0一下版本的,雖然可以解決30天試用期的問(wèn)題橘沥,但是卻不能更新最新版本的Charles窗轩,這個(gè)用戶體驗(yàn)也不優(yōu)秀∽兀總的來(lái)說(shuō)痢艺,小編還是建議下最新版的官方版本撬呢,這樣更加perfect誉碴!
如何進(jìn)行抓包?
對(duì)于抓包而言,我們需要分類(lèi)討論,分為真機(jī)和模擬器兩種情況。
1.真機(jī)抓包
網(wǎng)上講解真機(jī)抓包的過(guò)程很多,小編在這里帶大家過(guò)一遍谓罗,還是很so easy的刻蚯。
首先讨便,對(duì)Charles進(jìn)行配置:
菜單:Proxy -> Proxy Settings... -> 勾選 Enable transparent HTTP proxying
然后找到電腦的局域網(wǎng)IP地址:這里自己去找吧,我就不贅述了梳凛。
接著叛溢,打開(kāi)你的iPhone:設(shè)置 -> Wifi -> 連接上和電腦同一路由器的Wifi塑悼,點(diǎn)擊右邊的 i 進(jìn)入配置
配置:拉到底部,找到 <HTTP代理>, 選擇手動(dòng), 服務(wù)器填入電腦的IP地址楷掉,端口號(hào)寫(xiě) 8888 然后返回會(huì)刷新Wifi連接
此處配置完成后厢蒜,Charles會(huì)彈出提示框,
大意是:有人請(qǐng)求連接Charles ip是xxx.xxx.xxx.xxx是否允許烹植?
這里要注意0哐弧!草雕!Charles的默認(rèn)選項(xiàng)是Deny拒絕巷屿,所以一定不要按回車(chē)!6蘸纭嘱巾! 手動(dòng)選擇Allow!=氲觥旬昭!
到此,即可正常抓取iPhone的連接菌湃。
繼續(xù)
回到Charles问拘,進(jìn)行證書(shū)安裝:
Charles菜單:Help -> SSL Proxying -> Install Charles Root Certificate 點(diǎn)擊后自動(dòng)打開(kāi)鑰匙串訪問(wèn),請(qǐng)輸入電腦開(kāi)機(jī)密碼
完成后你會(huì)看見(jiàn)兩個(gè)證書(shū):
雙擊證書(shū)惧所,打開(kāi)證書(shū)詳情:展開(kāi)信任 -> 使用此證書(shū)時(shí):修改為 始終信任场梆,關(guān)閉證書(shū)詳情要求輸入開(kāi)機(jī)密碼
兩個(gè)證書(shū)都設(shè)置為始終信任。
接著纯路,安裝手機(jī)端的證書(shū):
回到Charles或油,菜單:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser
點(diǎn)擊后會(huì)彈出對(duì)話框,大意是:配置你的設(shè)備來(lái)使用Charles驰唬,證書(shū)下載地址:chls.pro/ssl
打開(kāi)手機(jī)Safari顶岸,訪問(wèn)下載地址:chls.pro/ssl (如果我們顯示的不同,則以提示中的地址為準(zhǔn))
正常情況下訪問(wèn)此地址會(huì)請(qǐng)求安裝一個(gè)配置文件叫编。若無(wú)請(qǐng)求請(qǐng)檢查Wifi是否設(shè)置了 HTTP代理 (參考配置圖:設(shè)置 -> Wifi -> i -> HTTP代理 手動(dòng))辖佣。
點(diǎn)擊安裝:
網(wǎng)上很多教程到這就結(jié)束了,但返回Charles會(huì)發(fā)現(xiàn)還是無(wú)法正常抓取HTTPS的請(qǐng)求搓逾。
其實(shí)還有一個(gè)設(shè)置卷谈,信任證書(shū):
打開(kāi)iPhone設(shè)置:通用 -> 關(guān)于手機(jī) -> 拉到最底部 證書(shū)信任設(shè)置 -> 勾選剛剛安裝的證書(shū)
最后
完成上面操作,最后再設(shè)置下SSL Proxying 霞篡,就可以利用 Charles 抓包 https 請(qǐng)求了世蔗。
選擇 Charles 菜單中:Proxy -> SSL Proxying Settings...*
作者:Maxdon
鏈接:http://www.reibang.com/p/e26151084add
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有端逼。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處污淋。
好了顶滩,到了這里,我相信你一定可以愉快的獲取數(shù)據(jù)了寸爆。
2.模擬器抓包
網(wǎng)上大部分都是描寫(xiě)如何用真機(jī)去抓包礁鲁,但是小編今天要講的是如何用模擬器去抓包,因?yàn)樵陂_(kāi)發(fā)當(dāng)中如果用真機(jī)去抓包赁豆,還得去設(shè)置代理仅醇,當(dāng)你不用的時(shí)候,還得關(guān)掉代理魔种,這個(gè)體驗(yàn)不優(yōu)秀着憨。當(dāng)然了,如果你是測(cè)試工程師务嫡,這個(gè)你就不用看了甲抖,因?yàn)槟銢](méi)有蘋(píng)果電腦,也沒(méi)有模擬器心铃,??????准谚!
如果你安裝了Charles,發(fā)現(xiàn)模擬器抓不了數(shù)據(jù)去扣,你可以從以下三個(gè)方向去找原因:
情況1:沒(méi)有安裝模擬器證書(shū)
解決:charles->Help -> Install Cahrles CA SSL Certificatein iOS Simulators (charles 3.9.3以上)
情況2:同時(shí)使用了其他的網(wǎng)絡(luò)代理柱衔,產(chǎn)生沖突,charles無(wú)法抓取數(shù)據(jù)
情況3:就是你沒(méi)有打開(kāi)macOS Proxy愉棱,這個(gè)問(wèn)題小編晚上研究了幾個(gè)小時(shí)都沒(méi)找出原因唆铐,后來(lái)無(wú)意中點(diǎn)了一下發(fā)現(xiàn)是這個(gè)原因造成的,一場(chǎng)烏龍奔滑,烏龍0瘛!朋其!
chares主要能為我們做什么王浴?
主要功能
- 支持SSL代理∶吩常可以截取分析SSL的請(qǐng)求氓辣。
- 支持流量控制「を荆可以模擬慢速網(wǎng)絡(luò)以及等待時(shí)間(latency)較長(zhǎng)的請(qǐng)求钞啸。
- 支持AJAX調(diào)試。可以自動(dòng)將json或xml數(shù)據(jù)格式化体斩,方便查看梭稚。
- 支持AMF調(diào)試∷段穑可以將Flash Remoting 或 Flex Remoting信息格式化哨毁,方便查看枫甲。
- 支持重發(fā)網(wǎng)絡(luò)請(qǐng)求源武,方便后端調(diào)試。
- 支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)想幻。
- 支持網(wǎng)絡(luò)請(qǐng)求的截獲并動(dòng)態(tài)修改粱栖。
- 檢查HTML,CSS和RSS內(nèi)容是否符合W3C標(biāo)準(zhǔn)脏毯。
應(yīng)用一: 過(guò)濾網(wǎng)絡(luò)請(qǐng)求
1.方法一:Filter 欄–>過(guò)濾關(guān)鍵字
2.方法二:在 Charles 的菜單欄選擇
Proxy –> Recording Settings –>Include –> add( 依次填入?yún)f(xié)議+主機(jī)地址+端口號(hào)闹究,實(shí)現(xiàn)只截取目標(biāo)網(wǎng)站的封包 )
3.方法三:在想過(guò)濾的網(wǎng)絡(luò)請(qǐng)求上右擊,選擇 “Focus”食店,在 Filter 欄勾選上 Focussed
應(yīng)用二: 截取 Https 通訊信息
1.安裝證書(shū)
“Help” –> “SSL Proxying” –> “Install Charles Root Certificate” –> 輸入系統(tǒng)的帳號(hào)密碼渣淤,即可在 KeyChain 看到添加好的證書(shū)。
Charles 默認(rèn)也并不截取 Https 網(wǎng)絡(luò)通訊的信息吉嫩,若想對(duì)截取某網(wǎng)站上所有 Https 網(wǎng)絡(luò)請(qǐng)求价认,在該請(qǐng)求上右擊選擇 SSL proxy
- 2.截取移動(dòng)設(shè)備中的 Https 通訊信息
- 2.1
Help
–>SSL Proxying
–>Install Charles Root Certificate on a Mobile Device or Remote Browser
- 2.2 在手機(jī)瀏覽器中訪問(wèn)地址:「http://charlesproxy.com/getssl」
注意:默認(rèn)情況下 Charles 并不做截取,你還需要在要截取的網(wǎng)絡(luò)請(qǐng)求上右擊自娩,選擇 SSL proxy 菜單項(xiàng)
3.補(bǔ)充一點(diǎn)
還要進(jìn)入 設(shè)置->關(guān)于本機(jī)→證書(shū)信任設(shè)置
打開(kāi)相關(guān)的開(kāi)關(guān)
應(yīng)用三: 模擬慢速網(wǎng)絡(luò)
1.選擇 Proxy –> Throttle Setting –>勾選上 Enable Throttling –> 選擇Throttle Preset 類(lèi)型
2.若只想模擬指定網(wǎng)站的慢速網(wǎng)絡(luò)用踩,再勾選圖中的 Only for selected hosts 項(xiàng),然后在對(duì)話框的下半部分設(shè)置中add指定的 hosts 項(xiàng)
對(duì)于弱網(wǎng)這個(gè)忙迁,還是比較重要脐彩,當(dāng)你的網(wǎng)絡(luò)無(wú)法某種環(huán)境的時(shí)候,你是需要利用一些工具去模擬的姊扔,經(jīng)得起各種臨界環(huán)境測(cè)驗(yàn)的App才是優(yōu)質(zhì)App惠奸。
總結(jié)
為什么小編要突然想起來(lái)要寫(xiě)這篇文章,是因?yàn)槟沁呁砩衔一厝ネ蝗话l(fā)現(xiàn)我家里電腦的模擬器抓不了包恰梢,但是我公司電腦模擬器是可以抓包晨川,這就意味著之前這個(gè)問(wèn)題遇到過(guò),解決了删豺,只是想不起來(lái)是如何解決的共虑,一整晚都在找各種方法,問(wèn)題沒(méi)解決呀页,覺(jué)還沒(méi)睡好妈拌。所以當(dāng)大家遇到一個(gè)比較好問(wèn)題,解決了的同時(shí),還要及時(shí)做好一些筆記去歸納去總結(jié)尘分,這樣下次很快就可以解決猜惋,不用浪費(fèi)太多時(shí)間。知識(shí)只有不斷的自我歸納培愁,才能形成良好的體系著摔。