Charels:高級(jí)使用進(jìn)階

說(shuō)明
首次發(fā)布 2019年03月03日
最近更新 2019年03月18日

前言:公司安排的分享會(huì)馬上就到我了次和,于是就再次整理了一下Charles的使用并更新了一下這篇文章豌注。無(wú)論你是iOS開(kāi)發(fā)者累提、Android開(kāi)發(fā)者還是前端開(kāi)發(fā)者兼耀,Charles都是一個(gè)不可多得的利器。但想要把這個(gè)利器的功能發(fā)揮到極致炕倘,還需要我們不斷的去摸索。結(jié)合過(guò)往的使用經(jīng)驗(yàn)翰撑,我將系統(tǒng)的總結(jié)一下并分享出來(lái)罩旋,希望對(duì)你在開(kāi)發(fā)中的調(diào)試有所幫助啊央。

環(huán)境:Charles V4.2.1

總覽

一、Map Local: 將指定的網(wǎng)絡(luò)請(qǐng)求重定向到本地文件涨醋。

之所以首推這個(gè)功能瓜饥,是因?yàn)槲覀兛梢噪S心所欲的讓指定接口返回我們想要的內(nèi)容,這樣就可以在不借助測(cè)試給配數(shù)據(jù)的情況下浴骂,完成我們的調(diào)試乓土。

1、選中接口溯警,右鍵選擇Save Response趣苏,然后保存為.json格式

2梯轻、將json編輯為我們期望的數(shù)據(jù)食磕,然后選中接口,右鍵選擇Map Local喳挑。

3彬伦、編輯map的本地路徑。


4伊诵、如果想取消本地映射单绑,可以在偏好里選擇是取消所有的map local,還是指定接口的曹宴。


5搂橙、在接口未開(kāi)發(fā)的情況下,我們?nèi)匀豢梢詣?chuàng)建一個(gè)json文件浙炼,然后執(zhí)行步驟三份氧,去模擬接口請(qǐng)求。

6弯屈、目前蜗帜,我測(cè)試的Query參數(shù),只對(duì)GET請(qǐng)求有效资厉,特此說(shuō)明厅缺。Query參數(shù)可以限制只對(duì)傳遞指定參數(shù)的請(qǐng)求做本地映射處理。


二宴偿、Map Remote:更換遠(yuǎn)程接口地址湘捎,使用場(chǎng)景一般是,在不重新運(yùn)行程序的情況下窄刘,將測(cè)試環(huán)境地址手動(dòng)更改為生產(chǎn)環(huán)境等窥妇。

1、選中接口地址娩践,右鍵“Map Remote”


2活翩、編輯想要替換的地址烹骨,保存即可。


3材泄、同樣沮焕,如果想取消遠(yuǎn)程映射,可以在偏好里選擇是取消所有的map remote拉宗,還是指定接口的峦树。



三、修改網(wǎng)絡(luò)請(qǐng)求:在與后臺(tái)進(jìn)行聯(lián)調(diào)的時(shí)候旦事,可能需要給后臺(tái)傳遞不同的參數(shù)魁巩,但調(diào)試的入口又比較深,這時(shí)候Charles的“編輯請(qǐng)求”的功能就可以大顯身手了族檬。比如說(shuō)歪赢,模擬登錄,踢掉用戶等等单料。
1埋凯、選中接口,然后選中鋼筆(Compose)

2扫尖、可以任意編輯請(qǐng)求頭白对、請(qǐng)求參數(shù),然后可以選擇執(zhí)行换怖、恢復(fù)更改取消甩恼。


四、模擬網(wǎng)速:App測(cè)試時(shí)一般都是用的公司的網(wǎng)絡(luò)沉颂,速度還可以条摸,如果想模擬網(wǎng)絡(luò)環(huán)境非常差的情況下,會(huì)出現(xiàn)什么情況铸屉, Charles 也提供了對(duì)應(yīng)的支持钉蒲,來(lái)模擬低速網(wǎng)絡(luò)環(huán)境。

1彻坛、進(jìn)入Throttle設(shè)置


2顷啼、選擇需要模擬的網(wǎng)絡(luò)環(huán)境


3、可以通過(guò)點(diǎn)擊面板上的小烏龜昌屉,來(lái)快捷的開(kāi)關(guān)模擬網(wǎng)速钙蒙。


五、斷點(diǎn)調(diào)試

1间驮、對(duì)要調(diào)試的接口打斷點(diǎn)躬厌,并開(kāi)啟斷點(diǎn)調(diào)試,如下圖所示竞帽。


2烤咧、當(dāng)請(qǐng)求調(diào)試的接口時(shí)偏陪,Charles會(huì)先跳到編輯請(qǐng)求,點(diǎn)擊執(zhí)行后煮嫌,會(huì)跳到響應(yīng)的編輯頁(yè)面。我們?cè)谶@里抱虐,可以對(duì)返回的結(jié)果進(jìn)行編輯昌阿。

需要特別注意的是:如果timeoutInterval設(shè)置的時(shí)間過(guò)短,可能會(huì)造成在沒(méi)有編輯完就超時(shí)的情況恳邀,建議如果編輯需要時(shí)間過(guò)長(zhǎng)懦冰,我們就把timeoutInterval設(shè)置的足夠長(zhǎng)些。


六谣沸、連續(xù)多次請(qǐng)求


七刷钢、專注模式

像下圖一樣,把我們不關(guān)心的請(qǐng)求歸到另一個(gè)文件夾里乳附。

操作方法:



八内地、Find in: 在ULR、Header赋除、RequestBody阱缓、ResponseHeader或ResponseBody里搜索字符串,正如你看到的举农,還支持正則表達(dá)式的搜索荆针。

圖片.png

拓展

原理簡(jiǎn)析

  • 如果是HTTP請(qǐng)求,因?yàn)閿?shù)據(jù)本身并沒(méi)加密所以請(qǐng)求內(nèi)容和返回結(jié)果是直接展現(xiàn)出來(lái)的颁糟。

  • 但HTTPS是對(duì)數(shù)據(jù)進(jìn)行了加密處理的航背,如果不做任何應(yīng)對(duì)是無(wú)法獲取其中內(nèi)容。所以Charles做的就是對(duì)客戶端把自己偽裝成服務(wù)器棱貌,對(duì)服務(wù)器把自己偽裝成客戶端:

      1. Charles攔截客戶端的請(qǐng)求玖媚,偽裝成客戶端向服務(wù)器進(jìn)行請(qǐng)求;
      1. 服務(wù)器向“客戶端”(實(shí)際上是Charles)返回服務(wù)器的CA證書键畴;
      1. Charles攔截服務(wù)器的響應(yīng)最盅,獲取服務(wù)器證書公鑰,然后自己制作一張證書起惕,將服務(wù)器證書替換后發(fā)送給客戶端涡贱。(這一步,Charles拿到了服務(wù)器證書的公鑰)惹想;
      1. 客戶端接收到“服務(wù)器”(實(shí)際上是Charles)的證書后问词,生成一個(gè)對(duì)稱密鑰,用Charles的公鑰加密嘀粱,發(fā)送給“服務(wù)器”(Charles)激挪;
      1. Charles攔截客戶端的響應(yīng)辰狡,用自己的私鑰解密對(duì)稱密鑰,然后用服務(wù)器證書公鑰加密垄分,發(fā)送給服務(wù)器宛篇。(這一步,Charles拿到了對(duì)稱密鑰)薄湿;
      1. 服務(wù)器用自己的私鑰解密對(duì)稱密鑰叫倍,向“客戶端”(Charles)發(fā)送響應(yīng);
      1. Charles攔截服務(wù)器的響應(yīng)豺瘤,替換成自己的證書后發(fā)送給客戶端吆倦;

當(dāng)然,如果 用戶不選擇信任安裝Charles的CA證書坐求,Charles也無(wú)法獲取請(qǐng)求內(nèi)容蚕泽。還有一種,如果 客戶端內(nèi)置了本身的CA證書桥嗤,這時(shí)如果Charles把自己的證書發(fā)送給客戶端须妻,客戶端會(huì)發(fā)現(xiàn)與程序內(nèi)的證書不一致,不予通過(guò)砸逊,此時(shí)Charles也是無(wú)法獲取信息的璧南。

其他屌屌的工具推薦
模擬后臺(tái)返回?cái)?shù)據(jù)網(wǎng)址
JSON數(shù)據(jù)格式化網(wǎng)址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者师逸。
  • 序言:七十年代末司倚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子篓像,更是在濱河造成了極大的恐慌动知,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件员辩,死亡現(xiàn)場(chǎng)離奇詭異盒粮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)奠滑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門丹皱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人宋税,你說(shuō)我怎么就攤上這事摊崭。” “怎么了杰赛?”我有些...
    開(kāi)封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵呢簸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)根时,這世上最難降的妖魔是什么瘦赫? 我笑而不...
    開(kāi)封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蛤迎,結(jié)果婚禮上确虱,老公的妹妹穿的比我還像新娘。我一直安慰自己忘苛,他們只是感情好蝉娜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著扎唾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪南缓。 梳的紋絲不亂的頭發(fā)上胸遇,一...
    開(kāi)封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音汉形,去河邊找鬼纸镊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛概疆,可吹牛的內(nèi)容都是我干的逗威。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼岔冀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凯旭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起使套,我...
    開(kāi)封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤罐呼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后侦高,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嫉柴,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年奉呛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了计螺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞧壮,死狀恐怖登馒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情馁痴,我是刑警寧澤谊娇,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響济欢,放射性物質(zhì)發(fā)生泄漏赠堵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一法褥、第九天 我趴在偏房一處隱蔽的房頂上張望茫叭。 院中可真熱鬧,春花似錦半等、人聲如沸揍愁。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)莽囤。三九已至,卻和暖如春切距,著一層夾襖步出監(jiān)牢的瞬間朽缎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工谜悟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留话肖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓葡幸,卻偏偏與公主長(zhǎng)得像最筒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔚叨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 一床蜘、charles的使用 1.1 charles的說(shuō)明 Charles其實(shí)是一款代理服務(wù)器,通過(guò)過(guò)將自己設(shè)置成系統(tǒng)...
    咖啡綠茶1991閱讀 21,941評(píng)論 5 26
  • 一缅叠、charles的使用 1.1 charles的說(shuō)明 Charles其實(shí)是一款代理服務(wù)器悄泥,通過(guò)過(guò)將自己設(shè)置成系統(tǒng)...
    玲兒瓏閱讀 678評(píng)論 0 4
  • 一、charles的使用 1.1 charles的說(shuō)明 Charles其實(shí)是一款代理服務(wù)器肤粱,通過(guò)過(guò)將自己設(shè)置成系統(tǒng)...
    朝畫夕拾閱讀 1,071評(píng)論 0 0
  • 【IT 工具 Charles抓包】 簡(jiǎn)介 Charles是什么弹囚? 為什么是Charles? 為什么要用抓包工具领曼?大...
    Rtia閱讀 2,407評(píng)論 0 13
  • 零點(diǎn)的風(fēng) 吹動(dòng)孫守沂相延三千年的真情 守望在閃爍的星空 思念沒(méi)有歸航 散亂成雨 幾許離愁 空靈點(diǎn)點(diǎn)寒冰 擊碎鵲橋的...
    劉廣申閱讀 276評(píng)論 0 10