一、基礎
1、Charles簡介
中文名青花瓷,是HTTP服務代理器,當瀏覽器連接Charles的代理訪問互聯網時,Charles可以監控瀏覽器發送和接受的所有數據。她允許開發者查看所有連接互聯網的HTTP通信。
特點:跨平臺、有免費版本(啓動需要10s、運行只能使用半小時)
2、Charles工作原理
使用前置條件:
1、運行Charles並配置代理
2、在客戶端配置代理和代理端口
使用步驟:
1、客戶端發送請求
2、Charles接受情況再發送給服務器
3、服務端返回請求結果給Charles
4、由Charles轉發給客戶端
3、Charles主要功能
支持HTTP和HTTPS的代理
支持流量控制(用於模擬弱網)
支持接口併發請求(用於簡單的性能測試)
支持重發網絡請求(用於接口測試,用的比較少)
支持斷點調試功能(發送或接收時修改請求/返回信息,模擬請求和響應)
4、Charles優點
相比fiddler:
1、支持多系統
2、支持按域名和按接口查看報文
3、支持反向代理
4、支持網絡限速、選擇網絡類型
5、可以解析AMF協議——不常用
二、安裝
1、Charles安裝
下載:[https://www.charlesproxy.com/download/](https://www.charlesproxy.com/download/)
2、安裝證書
3、Charles組件學習
三、代理設置
1、 Charles開啓代理
Proxy → Proxy Settings
1)端口號,默認8888,如果有衝突,則需要修改
2)點擊OK ,打開代理
2 Windows代理設置 ——設置後就能用charles抓取windows上的數據
1、chrome 瀏覽器輸入Chrome://seetting ,在搜索欄中輸入【代理】,點擊【打開您計算機的代理設置】
2、在打開的Windows代理設置頁面中,打開【使用代理服務器】,並填寫代理服務器地址及端口號即可(即 charles所在機器的ip和端口號)。
備註:如果charles和客戶端在同一臺電腦,默認情況下電腦上已經設置好代理了;如果charles和客戶端不在同一臺電腦,一定要把電腦上的代理服務器地址改爲charles所在電腦的ip和端口號。
3、MacOs代理設置 ——設置後就能用charles抓取MacOs上的數據
3.1 常規設置代理方式
1、系統偏好設置 → 網絡 → 高級 → 代理
2、勾選【Web代理(HTTP)】 → 輸入web代理服務器地址和端口 (即 charles所在機器的ip和端口號)
3、勾選【安全Web代理(HTTPS)】 → 輸入web代理服務器地址和端口
3.2 MocOs快捷代理設置
在Charles的Proxy → macOS Proxy
備註:如果charles和客戶端在同一臺電腦,快捷代理可以代替代理設置。
tips:快速查看Charles所在服務器的ip地址: 【Help → Local Adress】
四、PC端抓HTTPS包
https是把http進行了封裝,把http的報文進行加密了。
不配置的話,能顯示https域名,但請求爲unknown,報文內容都是亂碼。
解決方案:安裝SSL證書
Windows抓取https配置
1、Windows安裝證書
2、 macOS抓取https配置
3、Charles中https代理配置
五、手機端抓包
手機端配置:
1、確保iOS 設備和Charles服務器在同一個網絡下
2、在設置中選中無限局域網 → 網絡 → HTTP代理 → 配置代理 → 手動
3、輸入Charles服務器的i和端口號 並存儲
1、IOS系統設置代理——設置後就能用Charles抓取iOS上的數據:
2、Android系統設置代理 —— 設置後就能用Charles抓取Android上的數據
手機端配置:
1、確保iOS 設備和Charles服務器在同一個網絡下
2、設置 - WLAN - 顯示高級選項 - 代理 -手動
3、輸入Charles服務器的i和端口號 並存儲
如果設置後無法抓到https包,則需要安裝一下手機端證書
華爲手機安裝證書如下:
1、瀏覽器中輸入chls.pro/ssl提示下載證書
2、在【設置 - WLAN 更多->高級WLAN設置->安裝證書 】安裝後,證書的用途選擇【VPN和憑證】,不要選擇【WLAN】親測不行。
3、安裝成功後即可抓取https包
六、流量配置
1、Proxy → Throttle Setting
2、勾選 Enable Throttling
3、選擇對應的網絡類型
Bandwidth ——帶寬 -- 例如 512kbps
Reliability ——可靠性
Stabillith —— 穩定性
弱網一般用於app測試,看app在弱網情況下會不會閃退、登出等異常。
帶寬一般指下載的理療速度
512kbps(kbps=kb/s)=512/8=64KB/s
1M=1024/8=128KB/s
8M=8*1024/8=1024KB/s
七、斷點配置(用於編輯請求參數、編輯請求返回值)
1、選擇接口,右鍵 - 選擇“BreakPioints”
有的請求後面有隨機數,設置斷點後因爲隨機數不同,可能斷不到,此時在【Proxy → BreakPioints Setting】中編輯一下請求,把隨機數去掉即可
2、在瀏覽器中訪問這個接口
3、進入斷點頁面,展示接口請求的信息,此時請求還未發送到服務器
4、“Edit Requset” 編輯請求信息
5、點擊“Execute” 執行請求
6、執行後,接口的返回數據也會展示在charles中,不會直接返回瀏覽器
7、“Edit Response” 編輯服務器的返回信息
8、點擊“Execute”,把修改後的返回信息,反饋給瀏覽器,在瀏覽器中就能看到自己編輯的返回信息
遇到的問題
問題1、用着好好的,突然有一天無法抓包了
問題原因:charles證書過期了
help→SSL Proxying → Install Charles Root Certificate
解決辦法:
1、PC端reset證書、再信任即可
help→SSL Proxying → Reset Charles Root Certificate
2、手機端需要連接到代理、重新下載安裝證書、信任證書後使用
作者:時光不說話
鏈接:https://www.jianshu.com/p/80f5c6df0be7
來源:簡書