簡介
是一個(gè)HTTP代理服務(wù)器,HTTP監(jiān)視器,反轉(zhuǎn)代理服務(wù)器,當(dāng)瀏覽器連接Charles的代理訪問互聯(lián)網(wǎng)時(shí),Charles可以監(jiān)控瀏覽器發(fā)送和接收的所有數(shù)據(jù)。它允許一個(gè)開發(fā)者查看所有連接互聯(lián)網(wǎng)的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。
主要功能
支持SSL代理。可以截取分析SSL的請求。
支持流量控制。可以模擬慢速網(wǎng)絡(luò)以及等待時(shí)間(latency)較長的請求。
支持AJAX調(diào)試。可以自動(dòng)將json或xml數(shù)據(jù)格式化,方便查看。
支持AMF調(diào)試。可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。
支持重發(fā)網(wǎng)絡(luò)請求,方便后端調(diào)試。
支持修改網(wǎng)絡(luò)請求參數(shù)。
支持網(wǎng)絡(luò)請求的截獲并動(dòng)態(tài)修改。
檢查HTML,CSS和RSS內(nèi)容是否符合W3C標(biāo)準(zhǔn)。
沒錯(cuò),以上來自百度百科:https://baike.baidu.com/item/Charles/7841179?fr=aladdin
按照我的說法就是抓取網(wǎng)絡(luò)數(shù)據(jù)的.
我們在開發(fā)中,某些功能的調(diào)試和測試需要后臺(tái)配合修改數(shù)據(jù).有了它你就可以一人獨(dú)自嗨,想怎么修改測試就怎么來??.
一.安裝
Charles下載地址:https://www.charlesproxy.com
- 沒注冊的charles,30分鐘就會(huì)關(guān)閉一次.但是依然還是可以使用的.
二.抓取手機(jī)網(wǎng)絡(luò)包
-
Charles默認(rèn)抓取電腦網(wǎng)絡(luò)數(shù)據(jù)
設(shè)置Proxy.png
勾選表示抓取電腦網(wǎng)絡(luò)數(shù)據(jù).png 設(shè)置抓取手機(jī)數(shù)據(jù),這里以iOS為例
- 保證手機(jī)和電腦在同一個(gè)wifi下面
-
查看當(dāng)前電腦ip
image - 配置Charles:在菜單欄上選擇 Proxy->Proxy Settings,填入代理端口 8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理
-
在手機(jī)wifi網(wǎng)絡(luò)中添加代理,輸入電腦IP和charles的端口號(hào) 8888
image.png
- 配置抓HTTPS包
-
Mac安裝SSL證書,在Help→SSL Proxying→Install....,如下圖所示:
image.png -
選擇后,就會(huì)出現(xiàn)證書下載,下載成功后會(huì)電腦”鑰匙串訪問“中看見(這里我已經(jīng)安裝并信任過了),然后雙擊下載的證書,勾選信任即可,如下圖所示(在鑰匙串訪問中尋找下Charles):
image.png -
配置信任
image.png -
手機(jī)安裝SSL證書,在SSL Proxying中勾選Install ...Mobile Device 會(huì)彈出一個(gè)框,用手機(jī)(處于代理狀態(tài)下)登陸指定的url下載證書即可,如下圖所示:
然后按照順序按照即可.png
-
這時(shí)候你抓https的時(shí)候還是發(fā)現(xiàn)不行,亂碼加unknown
image.png
-
這時(shí)候我們還需要一步操作,就是將想要抓的https加入到SSL代理中,這樣才能被Charles識(shí)別并解析,選擇我們要抓的請求,右鍵你亂碼的域名選擇"Enable SSL Proxying",如下圖所示:
image.png
三.其它常用功能
-
網(wǎng)絡(luò)限速
網(wǎng)絡(luò)限速.png
2.通過修改數(shù)據(jù)源
-
修改服務(wù)器返回的內(nèi)容
Map Remote(Tools→Map Remote Settings),將網(wǎng)絡(luò)響應(yīng)定向至另外一個(gè)網(wǎng)絡(luò)服務(wù),從而達(dá)到修改返回內(nèi)容的目的,如下圖所示:
修改請求服務(wù)器.png -
Map Local(Tools->Map Local Settings),將網(wǎng)絡(luò)響應(yīng)定向至本地文件,從而達(dá)到修改返回內(nèi)容的目的,如下圖所示:
image.png
3.斷點(diǎn)調(diào)試,修改網(wǎng)絡(luò)請求和響應(yīng)內(nèi)容
- 打斷點(diǎn)
選中需要打斷點(diǎn)的域名(一般斷點(diǎn)在請求的父目錄),右鍵->Breakpoints -
打了斷點(diǎn),代理會(huì)在發(fā)送請求的時(shí)候攔截并斷點(diǎn)網(wǎng)絡(luò)請求.
image.png
4.設(shè)置關(guān)注請求(有時(shí)間,一時(shí)間會(huì)有多個(gè)請求,為了只關(guān)注我們關(guān)注的請求,簡化),選中我們關(guān)系的請求,設(shè)置Focus即可.