一知纷、基礎(chǔ)
1壤圃、Charles簡介
中文名青花瓷,是HTTP服務(wù)代理器琅轧,當(dāng)瀏覽器連接Charles的代理訪問互聯(lián)網(wǎng)時伍绳,Charles可以監(jiān)控瀏覽器發(fā)送和接受的所有數(shù)據(jù)。她允許開發(fā)者查看所有連接互聯(lián)網(wǎng)的HTTP通信乍桂。
特點(diǎn):跨平臺冲杀、有免費(fèi)版本(啟動需要10s、運(yùn)行只能使用半小時)
2模蜡、Charles工作原理
使用前置條件:
1漠趁、運(yùn)行Charles并配置代理
2、在客戶端配置代理和代理端口
使用步驟:
1忍疾、客戶端發(fā)送請求
2闯传、Charles接受情況再發(fā)送給服務(wù)器
3、服務(wù)端返回請求結(jié)果給Charles
4卤妒、由Charles轉(zhuǎn)發(fā)給客戶端
3甥绿、Charles主要功能
支持HTTP和HTTPS的代理
支持流量控制(用于模擬弱網(wǎng))
支持接口并發(fā)請求(用于簡單的性能測試)
支持重發(fā)網(wǎng)絡(luò)請求(用于接口測試,用的比較少)
支持?jǐn)帱c(diǎn)調(diào)試功能(發(fā)送或接收時修改請求/返回信息则披,模擬請求和響應(yīng))
4共缕、Charles優(yōu)點(diǎn)
相比fiddler:
1、支持多系統(tǒng)
2士复、支持按域名和按接口查看報(bào)文
3图谷、支持反向代理
4、支持網(wǎng)絡(luò)限速阱洪、選擇網(wǎng)絡(luò)類型
5便贵、可以解析AMF協(xié)議——不常用
二、安裝
1冗荸、Charles安裝
下載:[https://www.charlesproxy.com/download/](https://www.charlesproxy.com/download/)
2承璃、安裝證書
3、Charles組件學(xué)習(xí)
三蚌本、代理設(shè)置
1盔粹、 Charles開啟代理
Proxy → Proxy Settings
1)端口號,默認(rèn)8888程癌,如果有沖突舷嗡,則需要修改
2)點(diǎn)擊OK ,打開代理
2 Windows代理設(shè)置 ——設(shè)置后就能用charles抓取windows上的數(shù)據(jù)
1嵌莉、chrome 瀏覽器輸入Chrome://seetting 进萄,在搜索欄中輸入【代理】,點(diǎn)擊【打開您計(jì)算機(jī)的代理設(shè)置】
2、在打開的Windows代理設(shè)置頁面中垮斯,打開【使用代理服務(wù)器】郎仆,并填寫代理服務(wù)器地址及端口號即可(即 charles所在機(jī)器的ip和端口號)。
備注:如果charles和客戶端在同一臺電腦兜蠕,默認(rèn)情況下電腦上已經(jīng)設(shè)置好代理了扰肌;如果charles和客戶端不在同一臺電腦,一定要把電腦上的代理服務(wù)器地址改為charles所在電腦的ip和端口號熊杨。
3曙旭、MacOs代理設(shè)置 ——設(shè)置后就能用charles抓取MacOs上的數(shù)據(jù)
3.1 常規(guī)設(shè)置代理方式
1、系統(tǒng)偏好設(shè)置 → 網(wǎng)絡(luò) → 高級 → 代理
2晶府、勾選【W(wǎng)eb代理(HTTP)】 → 輸入web代理服務(wù)器地址和端口 (即 charles所在機(jī)器的ip和端口號)
3桂躏、勾選【安全Web代理(HTTPS)】 → 輸入web代理服務(wù)器地址和端口
3.2 MocOs快捷代理設(shè)置
在Charles的Proxy → macOS Proxy
備注:如果charles和客戶端在同一臺電腦,快捷代理可以代替代理設(shè)置川陆。
tips:快速查看Charles所在服務(wù)器的ip地址: 【Help → Local Adress】
四剂习、PC端抓HTTPS包
https是把http進(jìn)行了封裝,把http的報(bào)文進(jìn)行加密了较沪。
不配置的話鳞绕,能顯示https域名,但請求為unknown尸曼,報(bào)文內(nèi)容都是亂碼们何。
解決方案:安裝SSL證書
Windows抓取https配置
1、Windows安裝證書
2控轿、 macOS抓取https配置
3冤竹、Charles中https代理配置
五、手機(jī)端抓包
手機(jī)端配置:
1茬射、確保iOS 設(shè)備和Charles服務(wù)器在同一個網(wǎng)絡(luò)下
2鹦蠕、在設(shè)置中選中無限局域網(wǎng) → 網(wǎng)絡(luò) → HTTP代理 → 配置代理 → 手動
3、輸入Charles服務(wù)器的i和端口號 并存儲
1躲株、IOS系統(tǒng)設(shè)置代理——設(shè)置后就能用Charles抓取iOS上的數(shù)據(jù):
2片部、Android系統(tǒng)設(shè)置代理 —— 設(shè)置后就能用Charles抓取Android上的數(shù)據(jù)
手機(jī)端配置:
1镣衡、確保iOS 設(shè)備和Charles服務(wù)器在同一個網(wǎng)絡(luò)下
2霜定、設(shè)置 - WLAN - 顯示高級選項(xiàng) - 代理 -手動
3、輸入Charles服務(wù)器的i和端口號 并存儲
如果設(shè)置后無法抓到https包廊鸥,則需要安裝一下手機(jī)端證書
華為手機(jī)安裝證書如下:
1望浩、瀏覽器中輸入chls.pro/ssl提示下載證書
2、在【設(shè)置 - WLAN 更多->高級WLAN設(shè)置->安裝證書 】安裝后惰说,證書的用途選擇【VPN和憑證】磨德,不要選擇【W(wǎng)LAN】親測不行。
3、安裝成功后即可抓取https包
六典挑、流量配置
1酥宴、Proxy → Throttle Setting
2、勾選 Enable Throttling
3您觉、選擇對應(yīng)的網(wǎng)絡(luò)類型
Bandwidth ——帶寬 -- 例如 512kbps
Reliability ——可靠性
Stabillith —— 穩(wěn)定性
弱網(wǎng)一般用于app測試拙寡,看app在弱網(wǎng)情況下會不會閃退、登出等異常琳水。
帶寬一般指下載的理療速度
512kbps(kbps=kb/s)=512/8=64KB/s
1M=1024/8=128KB/s
8M=8*1024/8=1024KB/s
七肆糕、斷點(diǎn)配置(用于編輯請求參數(shù)、編輯請求返回值)
1在孝、選擇接口诚啃,右鍵 - 選擇“BreakPioints”
有的請求后面有隨機(jī)數(shù),設(shè)置斷點(diǎn)后因?yàn)殡S機(jī)數(shù)不同私沮,可能斷不到始赎,此時在【Proxy → BreakPioints Setting】中編輯一下請求,把隨機(jī)數(shù)去掉即可
2仔燕、在瀏覽器中訪問這個接口
3极阅、進(jìn)入斷點(diǎn)頁面,展示接口請求的信息涨享,此時請求還未發(fā)送到服務(wù)器
4筋搏、“Edit Requset” 編輯請求信息
5、點(diǎn)擊“Execute” 執(zhí)行請求
6厕隧、執(zhí)行后奔脐,接口的返回?cái)?shù)據(jù)也會展示在charles中,不會直接返回瀏覽器
7吁讨、“Edit Response” 編輯服務(wù)器的返回信息
8髓迎、點(diǎn)擊“Execute”,把修改后的返回信息建丧,反饋給瀏覽器排龄,在瀏覽器中就能看到自己編輯的返回信息
遇到的問題
問題1、用著好好的翎朱,突然有一天無法抓包了
問題原因:charles證書過期了
help→SSL Proxying → Install Charles Root Certificate
解決辦法:
1橄维、PC端reset證書、再信任即可
help→SSL Proxying → Reset Charles Root Certificate
2拴曲、手機(jī)端需要連接到代理争舞、重新下載安裝證書、信任證書后使用