Charles的使用(1)

本文的內(nèi)容主要包括:

  • Charles 的簡介
  • 將 Charles 設(shè)置成系統(tǒng)代理
  • 過濾網(wǎng)絡(luò)請(qǐng)求
  • 截取 iPhone 上的網(wǎng)絡(luò)封包
  • 截取 Https 通訊信息
  • 模擬慢速網(wǎng)絡(luò)

Charles 的簡介


Charles 是在 Mac 下常用的網(wǎng)絡(luò)封包截取工具梦碗,在做移動(dòng)開發(fā)時(shí),我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議蓖救,常常需要截取網(wǎng)絡(luò)封包來分析洪规。
Charles 通過將自己設(shè)置成系統(tǒng)的網(wǎng)絡(luò)訪問代理服務(wù)器,使得所有的網(wǎng)絡(luò)訪問請(qǐng)求都通過它來完成循捺,從而實(shí)現(xiàn)了網(wǎng)絡(luò)封包的截取和分析斩例。
除了在做移動(dòng)開發(fā)中調(diào)試端口外,Charles 也可以用于分析第三方應(yīng)用的通訊協(xié)議从橘。配合 Charles 的 SSL 功能念赶,Charles 還可以分析 Https 協(xié)議础钠。

附:可以去Charles 的官方網(wǎng)站下載最新版本,Charles破解

將 Charles 設(shè)置成系統(tǒng)代理


啟動(dòng) Charles 后叉谜,第一次 Charles 會(huì)請(qǐng)求你給它設(shè)置系統(tǒng)代理的權(quán)限旗吁。你可以輸入登錄密碼授予 Charles 該權(quán)限。你也可以忽略該請(qǐng)求停局,然后在需要將 Charles 設(shè)置成系統(tǒng)代理時(shí)很钓,選擇菜單中的 “Proxy” -> “Mac OS X Proxy” 來將 Charles 設(shè)置成系統(tǒng)代理。如下所示:



??翻具,你在Safari上進(jìn)行的網(wǎng)絡(luò)請(qǐng)求出現(xiàn)在 Charles 的界面中了履怯。

注:Chrome 和 Firefox 瀏覽器默認(rèn)并不使用系統(tǒng)的代理服務(wù)器設(shè)置,而 Charles 是通過將自己設(shè)置成代理服務(wù)器來完成封包截取的裆泳,所以在默認(rèn)情況下無法截取 Chrome 和 Firefox 瀏覽器的網(wǎng)絡(luò)通訊內(nèi)容叹洲。如果你需要截取的話,在 Chrome 中設(shè)置成使用系統(tǒng)的代理服務(wù)器設(shè)置即可工禾,或者直接將代理服務(wù)器設(shè)置成 127.0.0.1:8888 也可達(dá)到相同效果运提。

過濾網(wǎng)絡(luò)請(qǐng)求


  • 方法一:在主界面的中部的 Filter 欄中填入需要過濾出來的關(guān)鍵字。例如http://www.reibang.com , 那么只需要在 Filter 欄中填入 www.jianshu 即可闻葵。
  • 方法二:在 Charles 的菜單欄選擇 “Proxy”->”Recording Settings”民泵,然后選擇 Include 欄,選擇添加一個(gè)項(xiàng)目槽畔,然后填入需要監(jiān)控的協(xié)議栈妆,主機(jī)地址,端口號(hào)厢钧。這樣就可以只截取目標(biāo)網(wǎng)站的封包了鳞尔。如下圖所示:

    通常情況下,我們使用方法一做一些臨時(shí)性的封包過濾早直,使用方法二做一些經(jīng)常性的封包過濾寥假。
  • 方法三:在想過濾的網(wǎng)絡(luò)請(qǐng)求上右擊,選擇 “Focus”霞扬,之后在 Filter 一欄勾選上 Focussed 一項(xiàng)糕韧,如下圖所示:

    這種方式可以臨時(shí)性的,快速地過濾出一些沒有通過關(guān)鍵字的一類網(wǎng)絡(luò)請(qǐng)求喻圃。

截取 iPhone 上的網(wǎng)絡(luò)封包


Charles 通常用來截取本地上的網(wǎng)絡(luò)封包萤彩,但是當(dāng)我們需要時(shí),我們也可以用來截取其它設(shè)備上的網(wǎng)絡(luò)請(qǐng)求级及。下面我就以 iPhone 為例乒疏,講解如何進(jìn)行相應(yīng)操作。

  • Charles 上的設(shè)置
    要截取 iPhone 上的網(wǎng)絡(luò)請(qǐng)求饮焦,我們首先需要將 Charles 的代理功能打開怕吴。在 Charles 的菜單欄上選擇 “Proxy”->”Proxy Settings”窍侧,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的設(shè)置转绷。如下圖所示:
  • iPhone 上的設(shè)置
    1.首先我們需要獲取 Charles 運(yùn)行所在電腦的 IP 地址伟件,Charles 的頂部菜單的 “Help”->”Local IP Address”,即可在彈出的對(duì)話框中看到 IP 地址议经,如下圖所示:

    2.在 iPhone 的 “ 設(shè)置 “->” 無線局域網(wǎng) “ 中斧账,可以看到當(dāng)前連接的 wifi 名,通過點(diǎn)擊右邊的詳情鍵煞肾,可以看到當(dāng)前連接上的 wifi 的詳細(xì)信息咧织,包括 IP 地址,子網(wǎng)掩碼等信息籍救。在其最底部有「HTTP 代理」一項(xiàng)习绢,我們將其切換成手動(dòng),然后填上 Charles 運(yùn)行所在的電腦的 IP蝙昙,以及端口號(hào) 8888闪萄,如下圖所示:

    3.設(shè)置好之后,我們打開 iPhone 上的任意需要網(wǎng)絡(luò)通訊的程序奇颠,就可以看到 Charles 彈出 iPhone 請(qǐng)求連接的確認(rèn)菜單败去,點(diǎn)擊 “Allow” 即可完成設(shè)置。

截取 Https 通訊信息


  • 安裝證書
    如果你需要截取分析 Https 協(xié)議相關(guān)的內(nèi)容烈拒。那么需要安裝 Charles 的 CA 證書圆裕。具體步驟如下。

  • 首先我們需要在 Mac 電腦上安裝證書荆几。點(diǎn)擊 Charles 的頂部菜單葫辐,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,然后輸入系統(tǒng)的帳號(hào)密碼伴郁,即可在 KeyChain 看到添加好的證書。如下圖所示:


  • 需要注意的是蛋叼,即使是安裝完證書之后焊傅,Charles 默認(rèn)也并不截取 Https 網(wǎng)絡(luò)通訊的信息,如果你想對(duì)截取某個(gè)網(wǎng)站上的所有 Https 網(wǎng)絡(luò)請(qǐng)求狈涮,需要選擇 SSL proxy狐胎,官網(wǎng)提示如下:

Choosing hosts to SSL Proxy
You must specifically identify the host names you want to enable SSL Proxying on. The list is in the Proxy Settings, SSL tab. You can also right-click on a host name in the structure view and turn on or off SSL Proxying.

After adding a host name to the SSL Proxying list you may need to restart Charles for existing browser sessions to change.

If you want to SSL Proxy all host names then enter * into the host names list in the SSL Proxying Settings.

這樣,對(duì)于該 Host 的所有 SSL 請(qǐng)求可以被截取到了歌馍。

截取移動(dòng)設(shè)備中的 Https 通訊信息

  • 如果我們需要在 iOS 或 Android 機(jī)器上截取 Https 協(xié)議的通訊內(nèi)容握巢,還需要在手機(jī)上安裝相應(yīng)的證書。點(diǎn)擊 Charles 的頂部菜單松却,選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”暴浦,然后就可以看到 Charles 彈出的簡單的安裝教程溅话。如下圖所示:


  • 按照我們之前說的教程,在設(shè)備上設(shè)置好 Charles 為代理后歌焦,在手機(jī)瀏覽器中訪問地址:http://charlesproxy.com/getssl, 即可打開證書安裝的界面飞几,安裝完證書后,就可以截取手機(jī)上的 Https 通訊內(nèi)容了独撇。不過同樣需要注意屑墨,默認(rèn)情況下 Charles 并不做截取,你還需要在要截取的網(wǎng)絡(luò)請(qǐng)求上右擊纷铣,選擇 SSL proxy 菜單項(xiàng)卵史。

模擬慢速網(wǎng)絡(luò)


  • 在做移動(dòng)開發(fā)的時(shí)候,我們常常需要模擬慢速網(wǎng)絡(luò)或者高延遲的網(wǎng)絡(luò)搜立,以測(cè)試在移動(dòng)網(wǎng)絡(luò)下以躯,應(yīng)用的表現(xiàn)是否正常。Charles 對(duì)此需求提供了很好的支持儒拂。
    在 Charles 的菜單上寸潦,選擇 “Proxy”->”Throttle Setting” 項(xiàng),在之后彈出的對(duì)話框中社痛,我們可以勾選上 “Enable Throttling”见转,并且可以設(shè)置 Throttle Preset 的類型。如下圖所示:


  • 如果我們只想模擬指定網(wǎng)站的慢速網(wǎng)絡(luò)蒜哀,可以再勾選上圖中的 “Only for selected hosts” 項(xiàng)斩箫,然后在對(duì)話框的下半部分設(shè)置中增加指定的 hosts 項(xiàng)即可。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撵儿,一起剝皮案震驚了整個(gè)濱河市乘客,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淀歇,老刑警劉巖易核,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異浪默,居然都是意外死亡牡直,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門纳决,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碰逸,“玉大人,你說我怎么就攤上這事阔加《罚” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胳喷。 經(jīng)常有香客問我湃番,道長,這世上最難降的妖魔是什么厌蔽? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任牵辣,我火速辦了婚禮,結(jié)果婚禮上奴饮,老公的妹妹穿的比我還像新娘纬向。我一直安慰自己,他們只是感情好戴卜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布逾条。 她就那樣靜靜地躺著,像睡著了一般投剥。 火紅的嫁衣襯著肌膚如雪师脂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天江锨,我揣著相機(jī)與錄音吃警,去河邊找鬼。 笑死啄育,一個(gè)胖子當(dāng)著我的面吹牛酌心,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挑豌,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼安券,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了氓英?” 一聲冷哼從身側(cè)響起侯勉,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铝阐,沒想到半個(gè)月后址貌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡徘键,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年芳誓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啊鸭。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖匿值,靈堂內(nèi)的尸體忽然破棺而出赠制,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布钟些,位于F島的核電站烟号,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏政恍。R本人自食惡果不足惜汪拥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篙耗。 院中可真熱鬧迫筑,春花似錦、人聲如沸宗弯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒙保。三九已至辕棚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邓厕,已是汗流浹背逝嚎。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留详恼,地道東北人补君。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像单雾,于是被迫代替她去往敵國和親赚哗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容