本地開發(fā)項目的時候,我們可以通過谷歌瀏覽器的debug模式來看request以及response的數(shù)據(jù),但是如果我們開發(fā)移動端真機項目呢?或者真機線上出現(xiàn)問題如何抓取數(shù)據(jù)查看接口入?yún)⒑统鰠⒛??這就需要用到“抓包”
抓包就是通過工具抓取應(yīng)用的接口數(shù)據(jù)然后通過分析數(shù)據(jù)得出問題結(jié)論的一種常用的工作方法。下面簡述一下在iOS上面安裝Charles并且實現(xiàn)抓包的過程,抓取范圍包括web/APP內(nèi)嵌web/小程序原生/小程序內(nèi)嵌web等
【1】獲取PC的IP地址和端口
在Charles菜單欄 -> Help -> Local IP Address中可以查看PC的IP地址。
一般Charles端口是默認(rèn)的8888,可以從Charles菜單欄 -> Proxy -> Proxy Settings查看

【2】配置iPhone代理
設(shè)置 -> 無線局域網(wǎng) -> 局域網(wǎng)信息(i) -> 配置代理 -> 手動

【3】iPhone代理配置完成后,Charles會彈出連接提示框,點擊Allow之后即可使用Charles對從該iPhone發(fā)出的請求進行抓包了隨便走一個web就可以走http的抓包了

【4】隨便瀏覽一個網(wǎng)頁就可以看到數(shù)據(jù)了
[圖片上傳中...(image-7a895a-1628733410019-0)]

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

【2】iPhone安裝證書
在iPhone瀏覽器并且鏈接上charles代理然后訪問http://charlesproxy.com/getssl可以下載證書并安裝。此地址一般不會變化,可以在Charles菜單欄 -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser中查看最新的官方證書下載地址

基于iOS的證書信任機制,在安裝完成并信任證書后,需要到iPhone設(shè)置 ->通用-> 關(guān)于本機 -> 證書信任設(shè)置中啟用根證書。圖示如下:

這樣,就可以使用Charles中抓包iPhone發(fā)出的HTTPS請求并預(yù)覽明文數(shù)據(jù)了。
【3】 啟動抓包SSL權(quán)限
在Charles菜單欄 -> Proxy -> SSL Proxying Settings中勾選Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可?;蛘咧苯訉?端口寫443圖示如下:

可以抓取對應(yīng)添加的域名的Https的接口的數(shù)據(jù)

添加多個域名host就可以抓去多個域名接口的數(shù)據(jù)

structure:按照不同hosts域名分組展示請求
sequence:按照請求順序來展示請求