一、Charles簡(jiǎn)介
Charles是一個(gè)web代理(HTTP代理/ HTTP監(jiān)視器),運(yùn)行在您自己的計(jì)算機(jī)上。您的web瀏覽器(或任何其他Internet應(yīng)用程序)配置為通過(guò)Charles訪(fǎng)問(wèn)Internet,然后Charles能夠?yàn)槟涗浐惋@示發(fā)送和接收的所有數(shù)據(jù)。
在Web和Internet開(kāi)發(fā)中,您無(wú)法看到Web瀏覽器/客戶(hù)端和服務(wù)器之間發(fā)送和接收的內(nèi)容。如果沒(méi)有這種可見(jiàn)性,確定故障的確切位置將是困難和耗時(shí)的。Charles可以很容易地看到發(fā)生了什么,因此您可以快速診斷和解決問(wèn)題。
Charles使調(diào)試快速、可靠、先進(jìn);節(jié)省您的時(shí)間和挫折!
二、Charles的下載及安裝
官網(wǎng)地址:https://www.charlesproxy.com
下載對(duì)應(yīng)系統(tǒng)的安裝包

雙擊下載的安裝包
將Charles.app拖入Applications

三、Charles的配置
1、安裝證書(shū)
點(diǎn)擊charles -> help -> SSL Proxying -> Save Charles Root Certificate...

點(diǎn)擊charles -> help -> SSL Proxying -> Install Charles Root Certificate


下載證書(shū)后,頁(yè)面會(huì)打開(kāi)鑰匙串訪(fǎng)問(wèn),進(jìn)入證書(shū)頁(yè)面,雙擊證書(shū)-選擇信任證書(shū)
2、代理設(shè)置
選擇Proxy -> macOS Proxy,這個(gè)是抓取電腦請(qǐng)求的接口。如果只需要抓取手機(jī)端的請(qǐng)求的話(huà),這個(gè)就不需要選擇了。勾選這個(gè)之后,會(huì)將Charles設(shè)置成系統(tǒng)代理。

想要截取手機(jī)上的網(wǎng)絡(luò)請(qǐng)求,首先需要把Charles的代理功能打開(kāi),即在Charles的菜單欄上選擇Proxy -> Proxy Settings...


至此,HTTP的抓包就結(jié)速了,但是HTTPS還需要以下步驟,不然會(huì)產(chǎn)生亂碼
第一步:SSL代理設(shè)置是HTTP加密依賴(lài)的基礎(chǔ)協(xié)議,HTTP默認(rèn)是80端口,HTTPS默認(rèn)的是443端口


配置Tools -> Map Remote...。只知道接口名時(shí),抓包的時(shí)候進(jìn)行篩選


這樣電腦端的配置就配置完了,接下來(lái)是手機(jī)端配置了。
四、Charles蘋(píng)果手機(jī)端配置
手機(jī)端的配置就相對(duì)簡(jiǎn)單很多了
1、安裝Charles證書(shū)
證書(shū)下載地址. chls.pro/ssl. 但這個(gè)證書(shū)有些手機(jī)不好下載,可以使用前面電腦端下載好的證書(shū),通過(guò)微信發(fā)送到手機(jī)。
在手機(jī)上點(diǎn)擊接收到的證書(shū),然后點(diǎn)擊存儲(chǔ)到文件

這里我選擇的是 我的iPhone

點(diǎn)擊存儲(chǔ)

在手機(jī)上搜索文件,打開(kāi)文件之后就能找到你剛剛下載到的證書(shū)

點(diǎn)擊你要安裝的證書(shū)


根據(jù)提示文件描述符已經(jīng)下載完成,到手機(jī)的設(shè)置中安裝下載好的文件描述符


打開(kāi)手機(jī)的設(shè)置 -> 通用 -> 關(guān)于本機(jī) ->證書(shū)信任設(shè)置


2、確保手機(jī)端連接的網(wǎng)絡(luò)和電腦端的網(wǎng)絡(luò)一樣
3、修改手機(jī)代理
先查看一下電腦上安裝的Charles對(duì)應(yīng)的ip和端口號(hào)

在手機(jī)上找到你連接的無(wú)線(xiàn)網(wǎng),設(shè)置 -> 無(wú)線(xiàn)局域網(wǎng) -> 連接的無(wú)線(xiàn)網(wǎng)右邊的 i -> 配置代理

至此整個(gè)代理就搞定了
五、Charles破解
https://www.zzzmode.com/mytools/charles/
可以在這個(gè)網(wǎng)站上獲取對(duì)應(yīng)的激活碼,得到Registered Name和License Key,然后在Charles中設(shè)置即可

六、QA
1、Map Remote文件無(wú)法導(dǎo)入問(wèn)題

我在到人Map Remote文件的時(shí)候遇到了這個(gè)錯(cuò)誤,可能引起的原因是jdk版本過(guò)低,可以升級(jí)到對(duì)應(yīng)的jdk版本,或者降低charles的版本。