轉(zhuǎn)自:http://blog.csdn.net/ty_hf/article/details/54575174
1.過(guò)濾網(wǎng)絡(luò)請(qǐng)求
2.截取 iPhone 上的網(wǎng)絡(luò)封包
3.截取 Https 通訊信息
4.模擬慢速網(wǎng)絡(luò)
5.修改網(wǎng)絡(luò)請(qǐng)求內(nèi)容
6.給服務(wù)器做壓力測(cè)試
7.修改服務(wù)器返回內(nèi)容
8.Map 重定向功能
9.Rewrite 功能
10.Breakpoints 功能
11.設(shè)置ssl允許訪問(wèn)地址
12.查看連接本機(jī)charle代理的ip
13.設(shè)置請(qǐng)求的黑名單
14.緩存請(qǐng)求返回的內(nèi)容
對(duì)于某一個(gè)具體的網(wǎng)絡(luò)請(qǐng)求茂嗓,你可以查看其詳細(xì)的請(qǐng)求內(nèi)容和響應(yīng)內(nèi)容空民。如果請(qǐng)求內(nèi)容是 POST 的表單赦役,Charles 會(huì)自動(dòng)幫你將表單進(jìn)行分項(xiàng)顯示雕崩。如果響應(yīng)內(nèi)容是 JSON 格式的,那么 Charles 可以自動(dòng)幫你將 JSON 內(nèi)容格式化贩据,方便你查看脑豹。如果響應(yīng)內(nèi)容是圖片,那么
Charles 可以顯示出圖片的預(yù)覽旬痹。
1.過(guò)濾網(wǎng)絡(luò)請(qǐng)求
通常情況下,我們需要對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行過(guò)濾讨越,只監(jiān)控向指定目錄服務(wù)器上發(fā)送的請(qǐng)求两残。對(duì)于這種需求,以下幾種辦法:
方法一:在主界面的中部的 Filter 欄中填入需要過(guò)濾出來(lái)的關(guān)鍵字把跨。例如我們的服務(wù)器的地址是:http://blog.csdn.net,
那么只需要在 Filter 欄中填入 csdn 即可人弓。
方法二:在 Charles 的菜單欄選擇 “Proxy”->”Recording Settings”,然后選擇 Include 欄着逐,選擇添加一個(gè)項(xiàng)目崔赌,然后填入需要監(jiān)控的協(xié)議,主機(jī)地址耸别,端口號(hào)健芭。這樣就可以只截取目標(biāo)網(wǎng)站的封包了。如下圖所示:
方法三:在想過(guò)濾的網(wǎng)絡(luò)請(qǐng)求上右擊秀姐,選擇 “Focus”慈迈,之后在 Filter 一欄勾選上 Focussed 一項(xiàng),如下圖所示:
2.截取 iPhone 上的網(wǎng)絡(luò)封包
3.截取 Https 通訊信息
4.模擬慢速網(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 的類型野宜。如下圖所示:
5.修改網(wǎng)絡(luò)請(qǐng)求地址
dns欺騙碗殷,說(shuō)簡(jiǎn)單點(diǎn)就是把域名解析到一個(gè)假的ip,
可以不必一定要用locahost,127.0.0.1,裝個(gè)B把百度對(duì)應(yīng)到京東來(lái)調(diào)試~
選擇Tools->DNS Spoofing速缨,設(shè)置如下圖:
6.給服務(wù)器做壓力測(cè)試
7.修改服務(wù)器返回內(nèi)容
有些時(shí)候我們想讓服務(wù)器返回一些指定的內(nèi)容锌妻,方便我們調(diào)試一些特殊情況。例如列表頁(yè)面為空的情況旬牲,數(shù)據(jù)異常的情況仿粹,部分耗時(shí)的網(wǎng)絡(luò)請(qǐng)求超時(shí)的情況等。如果沒(méi)有 Charles原茅,要服務(wù)器配合構(gòu)造相應(yīng)的數(shù)據(jù)顯得會(huì)比較麻煩吭历。這個(gè)時(shí)候,使用 Charles
相關(guān)的功能就可以滿足我們的需求擂橘。
根據(jù)具體的需求晌区,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以達(dá)到修改服務(wù)器返回內(nèi)容的目的朗若。這三者在功能上的差異是:
△Map 功能適合長(zhǎng)期地將某一些請(qǐng)求重定向到另一個(gè)網(wǎng)絡(luò)地址或本地文件恼五。
△Rewrite 功能適合對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行一些正則替換。
△Breakpoints 功能適合做一些臨時(shí)性的修改哭懈。
8.Map 重定向功能
Charles 的 Map 功能分 Map Remote 和 Map Local 兩種灾馒,顧名思義,Map Remote 是將指定的網(wǎng)絡(luò)請(qǐng)求重定向到另一個(gè)網(wǎng)址請(qǐng)求地址遣总,Map Local 是將指定的網(wǎng)絡(luò)請(qǐng)求重定向到本地文件睬罗。
在 Charles 的菜單中,選擇 “Tools”->”Map Remote” 或 “Map Local” 即可進(jìn)入到相應(yīng)功能的設(shè)置頁(yè)面旭斥。
△對(duì)于 Map Local 功能容达,我們需要填寫的重定向的源地址和本地的目標(biāo)文件。對(duì)于有一些復(fù)雜的網(wǎng)絡(luò)請(qǐng)求結(jié)果垂券,我們可以先使用 Charles 提供的 “Save Response…” 功能花盐,將請(qǐng)求結(jié)果保存到本地(如下圖所示),然后稍加修改圆米,成為我們的目標(biāo)映射文件卒暂。
9.Rewrite 功能
△Rewrite 功能功能適合對(duì)某一類網(wǎng)絡(luò)請(qǐng)求進(jìn)行一些正則替換,以達(dá)到修改結(jié)果的目的娄帖。
例如也祠,我們的客戶端有一個(gè) API 請(qǐng)求是獲得用戶余額,而我當(dāng)前的余額是 “17.06”近速,如下所示:
重寫設(shè)置:
再次請(qǐng)求诈嘿,余額變成了2222,重寫成功。
10.Breakpoints 功能
上面提供的 Rewrite 功能最適合做批量和長(zhǎng)期的替換削葱,但是很多時(shí)候奖亚,我們只是想臨時(shí)修改一次網(wǎng)絡(luò)請(qǐng)求結(jié)果,這個(gè)時(shí)候析砸,使用 Rewrite 功能雖然也可以達(dá)到目的昔字,但是過(guò)于麻煩,對(duì)于臨時(shí)性的修改首繁,我們最好使用 Breakpoints 功能作郭。
Breakpoints 功能類似我們?cè)?Xcode 中設(shè)置的斷點(diǎn)一樣,當(dāng)指定的網(wǎng)絡(luò)請(qǐng)求發(fā)生時(shí)弦疮,Charles 會(huì)截獲該請(qǐng)求夹攒,這個(gè)時(shí)候,我們可以在 Charles 中臨時(shí)修改網(wǎng)絡(luò)請(qǐng)求的返回內(nèi)容胁塞。
下圖是我們臨時(shí)修改獲取用戶信息的 API咏尝,將用戶的昵稱進(jìn)行了更改压语,修改完成后點(diǎn)擊 “Execute” 則可以讓網(wǎng)絡(luò)請(qǐng)求繼續(xù)進(jìn)行。
按照上邊設(shè)置好以后编检,再次訪問(wèn)接口將會(huì)有斷點(diǎn)提示胎食,進(jìn)入編輯返回的內(nèi)容即可(我在運(yùn)用時(shí)很奇怪,設(shè)置成功后蒙谓,得退出一次charles程序斥季,再啟動(dòng)才會(huì)有斷點(diǎn)界面)
11.設(shè)置ssl允許訪問(wèn)地址
12.看連接本機(jī)charle代理的ip
有非法的remove掉即可
13.設(shè)置請(qǐng)求的黑名單
不想某些請(qǐng)求發(fā)起训桶,直接返回404累驮,可以用黑名單
選擇Tools->Black List,設(shè)置如下圖:
14.緩存請(qǐng)求返回的內(nèi)容
這個(gè)我用來(lái)干過(guò)做緩存數(shù)據(jù)用舵揭,讓app在沒(méi)有server的時(shí)候也能跑谤专,
選擇Tools->Mirror,設(shè)置如下圖: