參考:抓取手機(jī)網(wǎng)絡(luò)請(qǐng)求
在測(cè)試app的時(shí)候,往往需要去定位問題,找到所拋出的請(qǐng)求是否異常,Mac 平臺(tái)下課通過 Charles 來實(shí)現(xiàn),那么如何抓到手機(jī)拋出的請(qǐng)求呢?
前提: Mac 和 手機(jī)處在同一局域網(wǎng)下
1. 配置 Charles 實(shí)現(xiàn) HTTP 請(qǐng)求的抓取
1. 設(shè)置 Charles 代理
Charles -> Proxy -> Proxy Settings -> Proxies, 在 Http Proxy 的 Port 中填寫代理的端口,默認(rèn)為 8888.


2. 獲取 Mac 當(dāng)前 IP
方法有很多種,介紹一種最簡單的
按住 option 鍵,點(diǎn)擊右上角的 WiFi 圖標(biāo)即可

3. 設(shè)置手機(jī) HTTP 代理
設(shè)置 -> 無線局域網(wǎng) -> 與 Mac 同一 WiFi -> 點(diǎn)擊右側(cè)的信息 -> 頁面最下面設(shè)置 HTTP 代理,服務(wù)器和端口在前兩部中已獲得,填入即可。

注意: 在不使用的時(shí)候需要將手機(jī)中的 HTTP 代理關(guān)閉,否則 mac 關(guān)機(jī)或者關(guān)閉軟件后,手機(jī)無法正常上網(wǎng)!
2. 配置 Charles 實(shí)現(xiàn) HTTPS 請(qǐng)求的抓取
如果不進(jìn)行下面的設(shè)置, https 的 reqeust 和 response 都是亂碼,設(shè)置完之后 https 就可以抓包了。
1. Mac 端安裝證書
點(diǎn)擊 Charles 菜單的 help -> SSL -> proxying -> install charles root certificate

2. 從 Keychains 找到剛安裝的證書,并選擇信任
安裝完成后 keychains 會(huì)自動(dòng)彈出。選擇信任后,需要輸入 Mac 的登錄密碼才能保存。

3. 手機(jī)端安裝證書
Safari 中輸入 chls.pro/ssl, 按提示一步步操作即可。此步需要輸入手機(jī)密碼。

注意: 對(duì)于 iOS 10.3,安裝完成后并不算結(jié)束,還需要一步設(shè)置
設(shè)置 -> 通用 -> 關(guān)于本機(jī) -> 證書信任設(shè)置,找到 Charles 的證書,選擇信任。
4. Charles 設(shè)置
Charles -> Proxy -> SSL Proxy Setting

在彈出的窗口勾選 Enable SSL Proxying, 選擇 Add,在彈窗中填入要抓取的域名和端口,如 API,baidu.com, Port: 443

配置完成,在手機(jī)端打開一個(gè) https 站點(diǎn)試試。

Https 請(qǐng)求的 response 的 content 不再是亂碼,可以愉快的玩耍了。
不用的時(shí)候最好還是關(guān)掉,需要的再打開就好。