在開發(fā)app或者小程序時,無法看到應(yīng)用與服務(wù)器之間發(fā)送和接收的內(nèi)容,導(dǎo)致獲取請求參數(shù)和響應(yīng)參數(shù)比較困難。Charles是一個運行在PC上的web代理。我們可以將手機(jī)端應(yīng)用程序通過Charles訪問網(wǎng)絡(luò),便可以在Charles上記錄并顯示發(fā)送和接收的所有數(shù)據(jù)。
Charles官網(wǎng):https://www.charlesproxy.com/
Charles的作用:

1. 對請求抓包
保證iPhone和PC工作在同一局域網(wǎng)內(nèi)(即同一個WIFI下)。
1.1 獲取PC端的IP地址

打開網(wǎng)絡(luò)偏好設(shè)置...

獲取IP地址。
1.2 配置iphone代理
設(shè)置->無線局域網(wǎng)

HTTP代理->配置代理(手動)

1.3 PC端的Charles設(shè)置
具體的端口可以從Charles菜單欄 -> Proxy -> Proxy Settings中查看。圖示如下:

iPhone代理配置完成后,Charles會彈出連接提示框,點擊Allow之后即可使用Charles對從該iPhone發(fā)出的請求進(jìn)行抓包了。圖示如下:

2. 抓取HTTPS請求
配置iPhone代理完畢后,就可以通過Structure或者Sequence窗口預(yù)覽HTTP請求的數(shù)據(jù)了。但由于HTTPS請求被加密過,預(yù)覽請求時只能預(yù)覽到亂碼數(shù)據(jù)。要預(yù)覽到HTTPS請求的數(shù)據(jù)明文,需要PC和iPhone安裝證書授權(quán)。
2.1 PC端安裝證書
在Charles菜單欄 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以為PC安裝證書,證書可以在Mac的鑰匙串中查看。圖示如下:

證書可以在Mac的鑰匙串中查看,雙擊證書,將信任權(quán)限設(shè)定為始終信任。圖示如下:

2.2 ipone手機(jī)安裝證書
在iPhone瀏覽器中訪問http://charlesproxy.com/getssl可以下載證書并安裝。
基于iOS的證書信任機(jī)制,在安裝完成并信任證書后,需要到iPhone設(shè)置 ->通用-> 關(guān)于本機(jī) -> 證書信任設(shè)置中啟用根證書。
2.3 啟動抓包的SSL權(quán)限
在Charles菜單欄 -> Proxy -> SSL Proxying Settings中勾選Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。圖示如下:

即對所有的https都進(jìn)行抓包。