Charles 常作為開(kāi)發(fā)者的網(wǎng)絡(luò)抓包工具到腥,方便調(diào)試服務(wù)器接口。但一些常用功能容易遺忘蔚袍,每次忘了都要查比較煩乡范,因此總結(jié)一下。
連接方式
保證電腦和手機(jī)在同一局域網(wǎng)啤咽,啟動(dòng) charles 后晋辆,手機(jī)設(shè)置網(wǎng)絡(luò)代理的 IP 地址為電腦 IP,端口默認(rèn)為 8888宇整,可在 Proxy->Proxy Settings 中查看和設(shè)置瓶佳;
常用功能
1、Mock 數(shù)據(jù)(Map Local)
對(duì)某個(gè)接口請(qǐng)求成功后鳞青,現(xiàn)在該條記錄->右鍵->Save Response 把接口放回結(jié)果保留在本地(假設(shè)保存為文件 index.json)霸饲,再次在該條記錄->右鍵->Map Local,如果 Query一行內(nèi)容較多臂拓,可以全部刪除(如果保留的話贴彼,只有域名和參數(shù)都匹配,mock 文件才能生效)埃儿,Local Path 選擇你剛保存的 index.json 文件器仗。以后的該接口請(qǐng)求就會(huì)以 index.json 文件內(nèi)容為返回結(jié)果,因此你可以修改本地 index.json 文件內(nèi)容童番,來(lái)模擬網(wǎng)絡(luò)請(qǐng)求的多種數(shù)據(jù)精钮;
在 Charles ->Tools -> Map Local Settings 中可以添加、移除剃斧、禁用 Mock 數(shù)據(jù)轨香;
2、內(nèi)容重寫(Rewrite)
mock 數(shù)據(jù)時(shí)可能會(huì)遇到一個(gè)問(wèn)題幼东,就是你發(fā)現(xiàn) Mock 成功了臂容,但是返回的結(jié)果全是亂碼,或者看上去是文本不是 json 數(shù)據(jù)根蟹,大概率是響應(yīng)數(shù)據(jù)格式不正確脓杉,此時(shí)就可以使用 Rewrite功能;
進(jìn)入 Tools -> Rewrite Settings ->勾選 Enable Rewrite简逮,添加(Add)規(guī)則球散,然后進(jìn)行如下圖所示的配置,目的是將 text/plain 格式的響應(yīng)格式替換為 application/json 格式
3散庶、接口斷點(diǎn)(Breakpoints)
在某個(gè)接口請(qǐng)求->右鍵->勾選 Breakpoints蕉堰,相當(dāng)于給該接口設(shè)置了斷點(diǎn)凌净,每當(dāng)該接口重新被請(qǐng)求時(shí),Charles 就會(huì)給出斷點(diǎn)調(diào)試的界面屋讶,在該界面你可以修改上行參數(shù)冰寻,修改 Http 請(qǐng)求方式,或選擇繼續(xù)執(zhí)行(Execute)還是丟棄(Abort)該接口皿渗;
如果設(shè)置斷點(diǎn)無(wú)效性雄,請(qǐng)檢查:Charles ->Proxy -> Breakpoints Settings,是否未啟用羹奉、是否對(duì)接口請(qǐng)求不完全一致(試試雙擊某條記錄秒旋,將 Query 參數(shù)全部刪除);
4诀拭、網(wǎng)絡(luò)限速
在 Charles ->Proxy -> Throttle Settings 中勾選 Enable Throttling迁筛,在 Throttle Configuration 菜單設(shè)置響應(yīng)的上行與下行速度即可;
常見(jiàn)問(wèn)題
1耕挨、手機(jī)設(shè)置連接后细卧,Charles 沒(méi)有數(shù)據(jù)
嘗試在手機(jī)端殺進(jìn)程重啟;
2筒占、Charles 中能看到網(wǎng)絡(luò)請(qǐng)求贪庙,但是看不到具體上行和下行數(shù)據(jù)
大概率是請(qǐng)求為 https 請(qǐng)求,沒(méi)有安裝或新任證書導(dǎo)致的翰苫,這需要如下操作
①按照 Charles? Help -> SSL Proxying 中的提示止邮,在手機(jī)端訪問(wèn) http://charlesproxy.com/getssl 下載證書并安裝;
②如果還是不能顯示請(qǐng)求內(nèi)容奏窑,在電腦端(以 Mac 為例)同樣按照 Help -> SSL Proxying 中的提示安裝電腦證書:搜索并進(jìn)入 鑰匙串訪問(wèn)->找到 charles 證書->雙擊調(diào)出詳情窗口->展開(kāi)信任菜單->使用此證書時(shí)的選項(xiàng)設(shè)置為"始終信任"导披;
③如果問(wèn)題依舊,在 Charles Proxy -> SSL Proxying Settings 中勾選 Enable SSL Proxying埃唯,并添加規(guī)則撩匕,比如你要訪問(wèn)的域名是? email.163.com,你可以設(shè)置 Host 為 *.163.* 來(lái)匹配所有163的域名墨叛,Port 可以無(wú)需設(shè)置止毕;