在iOS開發過程中,抓包是常見的必備技能之一。這里我們主要介紹一下Mac下的抓包利器Charles(文中版本:4.0.1)。它可以非常方便的抓取Http/Https請求,從而提高我們的開發效率。本文中不提供破解版安裝使用說明(網上一大堆),建議使用正版,官方dmg下載地址:點擊此處。
一、如何抓取Http請求?
(1)安裝完成之后打開Charles,設置端口號:8888(端口號可以自定義)。
選擇“Proxy”菜單下的“Proxy Settings”子菜單。打開“Proxy Settings”對話框:
1479258858690546.jpg
在“Proxy Settings”對話框中設置端口號:8888,并勾選“Enable transparent Http proxying”項:
1479258874400886.jpg
(2)打開“網絡偏好設置”查看電腦IP地址:
1479258898483149.jpg
(3)設置手機網絡(iOS):
1479258932679473.jpg
(4)打開需要抓包的手機APP,初次使用時,Charles會彈出確認對話框,直接點擊”Allow”按鈕后就可以看到對應的請求數據。
溫馨提示:抓完包之后,請把手機WiFi中的HTTP代理關閉。不然可能造成iOS無法訪問網絡。
二、如何抓取Https請求?
(1)電腦安裝SSL證書
選中Charles,在“Help”菜單中選擇—>“SSL Proxying”—>“Install Charles Root Certificate”會自動打開鑰匙串訪問窗口:
1479258958711840.png
在“鑰匙串訪問”窗口中找到對應的證書,雙擊打開。設置“使用證書時”項為:始終信任。
1479258975979124.png
填寫管理員密碼更新設置。
1479258996694658.png
(2)手機安裝證書(使用Safari方式):
請確保手機已經設置好手動代理(具體方式參照上面HTTP抓包設置方式)。
在手機Safari瀏覽器中輸入下面的鏈接地址:http://charlesproxy.com/getssl。手機會自動跳轉安裝“Charles Proxy SSL Proxying”描述文件。如下圖所示:
1479259108857718.jpg
點擊“安裝”按鈕,會提示輸入手機密碼,然后確認安裝。
1479259145586477.jpg
以上便完成手機SSL證書安裝步驟。
(3)在Charles工具欄上點擊設置按鈕,選擇“SSL Proxying Settings…”:
打開“SSL Proxying Settings”對話框:
1479259172818647.jpg
點擊“Add”添加:Host中輸入*表示匹配所有主機。https默認端口號:443。
1479259184165591.jpg
添加完成顯示結果如下:
1479259195476646.jpg
(4)測試:
安裝手機證書之前測試結果如下圖所示:
1479259217939679.jpg
安裝手機證書之后測試結果如下圖所示:
1479259228540544.jpg
針對Charles代理訪問https有些正常有些失敗的處理方法(一般https只要打開charles 的”Enable SSL Proxying”代理就能訪問):點擊此處
三、如果沒有Wifi,我們還可以這樣抓包?(本文不做詳解)
(1)抓包之rvictl方式:
開啟虛擬端口:rvictl -s
關閉虛擬端口:rvictl -x
然后使用wireshark來捕捉這個端口數據。
(2)抓包之tcpdump方式:
有個很大的缺點是手機需要越獄。
本文內容中部分來自網絡,后續會不斷更新完善。歡迎一起學習交流!
如需轉載,請注明出處
四、參考博客地址:
Mac上的抓包工具Charles