charles詳解及使用

一、基礎

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


 
22年5月使用時發現charles不能用了

解決辦法:
1、PC端reset證書、再信任即可
help→SSL Proxying → Reset Charles Root Certificate
2、手機端需要連接到代理、重新下載安裝證書、信任證書後使用



作者:時光不說話
鏈接:https://www.jianshu.com/p/80f5c6df0be7
來源:簡書
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章