Charles的安裝到iOS開(kāi)發(fā)中使用

簡(jiǎn)介

是一個(gè)HTTP代理服務(wù)器,HTTP監(jiān)視器,反轉(zhuǎn)代理服務(wù)器,當(dāng)瀏覽器連接Charles的代理訪(fǎng)問(wèn)互聯(lián)網(wǎng)時(shí),Charles可以監(jiān)控瀏覽器發(fā)送和接收的所有數(shù)據(jù)。它允許一個(gè)開(kāi)發(fā)者查看所有連接互聯(lián)網(wǎng)的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。

主要功能

  • 支持SSL代理??梢越厝》治鯯SL的請(qǐng)求。

  • 支持流量控制。可以模擬慢速網(wǎng)絡(luò)以及等待時(shí)間(latency)較長(zhǎng)的請(qǐng)求。

  • 支持AJAX調(diào)試??梢宰詣?dòng)將json或xml數(shù)據(jù)格式化,方便查看。

  • 支持AMF調(diào)試。可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。

  • 支持重發(fā)網(wǎng)絡(luò)請(qǐng)求,方便后端調(diào)試。

  • 支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)。

  • 支持網(wǎng)絡(luò)請(qǐng)求的截獲并動(dòng)態(tài)修改。

  • 檢查HTML,CSS和RSS內(nèi)容是否符合W3C標(biāo)準(zhǔn)。

沒(méi)錯(cuò),以上來(lái)自百度百科:https://baike.baidu.com/item/Charles/7841179?fr=aladdin

按照我的說(shuō)法就是抓取網(wǎng)絡(luò)數(shù)據(jù)的.
我們?cè)陂_(kāi)發(fā)中,某些功能的調(diào)試和測(cè)試需要后臺(tái)配合修改數(shù)據(jù).有了它你就可以一人獨(dú)自嗨,想怎么修改測(cè)試就怎么來(lái)??.

一.安裝

Charles下載地址:https://www.charlesproxy.com

  • 沒(méi)注冊(cè)的charles,30分鐘就會(huì)關(guān)閉一次.但是依然還是可以使用的.

二.抓取手機(jī)網(wǎng)絡(luò)包

  1. Charles默認(rèn)抓取電腦網(wǎng)絡(luò)數(shù)據(jù)


    設(shè)置Proxy.png

    勾選表示抓取電腦網(wǎng)絡(luò)數(shù)據(jù).png
  2. 設(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
  1. 配置抓HTTPS包
  • Mac安裝SSL證書(shū),在Help→SSL Proxying→Install....,如下圖所示:


    image.png
  • 選擇后,就會(huì)出現(xiàn)證書(shū)下載,下載成功后會(huì)電腦”鑰匙串訪(fǎng)問(wèn)“中看見(jiàn)(這里我已經(jīng)安裝并信任過(guò)了),然后雙擊下載的證書(shū),勾選信任即可,如下圖所示(在鑰匙串訪(fǎng)問(wèn)中尋找下Charles):


    image.png
  • 配置信任


    image.png
  • 手機(jī)安裝SSL證書(shū),在SSL Proxying中勾選Install ...Mobile Device 會(huì)彈出一個(gè)框,用手機(jī)(處于代理狀態(tài)下)登陸指定的url下載證書(shū)即可,如下圖所示:


    然后按照順序按照即可.png
  1. 這時(shí)候你抓https的時(shí)候還是發(fā)現(xiàn)不行,亂碼加unknown


    image.png
  • 這時(shí)候我們還需要一步操作,就是將想要抓的https加入到SSL代理中,這樣才能被Charles識(shí)別并解析,選擇我們要抓的請(qǐng)求,右鍵你亂碼的域名選擇"Enable SSL Proxying",如下圖所示:


    image.png

三.其它常用功能

  1. 網(wǎng)絡(luò)限速


    網(wǎng)絡(luò)限速.png

2.通過(guò)修改數(shù)據(jù)源

  • 修改服務(wù)器返回的內(nèi)容
    Map Remote(Tools→Map Remote Settings),將網(wǎng)絡(luò)響應(yīng)定向至另外一個(gè)網(wǎng)絡(luò)服務(wù),從而達(dá)到修改返回內(nèi)容的目的,如下圖所示:


    修改請(qǐng)求服務(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ò)請(qǐng)求和響應(yīng)內(nèi)容

  • 打斷點(diǎn)
    選中需要打斷點(diǎn)的域名(一般斷點(diǎn)在請(qǐng)求的父目錄),右鍵->Breakpoints
  • 打了斷點(diǎn),代理會(huì)在發(fā)送請(qǐng)求的時(shí)候攔截并斷點(diǎn)網(wǎng)絡(luò)請(qǐng)求.


    image.png

4.設(shè)置關(guān)注請(qǐng)求(有時(shí)間,一時(shí)間會(huì)有多個(gè)請(qǐng)求,為了只關(guān)注我們關(guān)注的請(qǐng)求,簡(jiǎn)化),選中我們關(guān)系的請(qǐng)求,設(shè)置Focus即可.


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容