Charles 功能介紹和使用教程

往事惘逝發表於2018-08-27

Charles 功能介紹和使用教程

Charles 簡介

Charles 是在 PC 端常用的網路封包擷取工具,在做移動開發時,我們為了除錯與伺服器端的網路通訊協議,常常需要擷取網路封包來分析。除了在做移動開發中除錯埠外,Charles 也可以用於分析第三方應用的通訊協議。配合 Charles 的 SSL 功能,Charles 還可以分析 Https 協議。

Charles 通過將自己設定成系統的網路訪問代理伺服器,使得所有的網路訪問請求都通過它來完成,從而實現了網路封包的擷取和分析。

Charles 是收費軟體,可以免費試用 30 天。試用期過後,未付費的使用者仍然可以繼續使用,但是每次使用時間不能超過 30 分鐘,並且啟動時將會有 10 秒種的延時。因此,該付費方案對廣大使用者還是相當友好的,即使你長期不付費,也能使用完整的軟體功能。只是當你需要長時間進行封包除錯時,會因為 Charles 強制關閉而遇到影響。

Charles 主要的功能包括:

  • 擷取 Http 和 Https 網路封包。
  • 支援重發網路請求,方便後端除錯。
  • 支援修改網路請求引數。
  • 支援網路請求的截獲並動態修改。
  • 支援模擬慢速網路。

下載安裝 Charles

Charles 功能介紹和使用教程
Charles 支援的作業系統包括:

  • Windows 64 bit(msi)
  • Windows 32 bit(msi)
  • macOS(dmg)
  • Linux 64 bit(tar.gz)
  • Linux 32 bit(tar.gz)

開啟瀏覽器訪問 Charles 官網 ,下載相應系統的 Charles 安裝包,然後安裝即可:

  • Windows: 執行安裝應用程式以在程式選單中安裝 Charles。
  • Mac OS X: 通過雙擊解壓縮下載檔案,然後將 Charles 應用程式複製到 Applications 目錄中。
  • Linux: Charles 擁有 APTYUM 儲存庫,如果你有基於 Debian 或基於 Red Hat 的 Linux 發行版,這是安裝 Charles 的首選方法。否則,將 tar.gz 檔案解壓縮到適當的站點。如果您以前安裝過 Charles 並且正在進行升級;首先確保 Charles 沒有執行,然後安裝或複製在以前安上。通過執行 bin/charles 指令碼啟動 Charles。

如果使用 Firefox,也可以下載 Firefox 外掛。參考Firefox Add-On

Charles 主介面介紹

Charles 的主介面檢視如下圖所示:

Charles 功能介紹和使用教程

工具導航欄

Charles 頂部為選單導航欄,選單導航欄下面為工具導航欄。檢視如下圖所示:

Charles 功能介紹和使用教程
工具導航欄中提供了幾種常用工具:

  • Charles 功能介紹和使用教程 :清除捕獲到的所有請求
  • Charles 功能介紹和使用教程 :紅點狀態說明正在捕獲請求,灰色狀態說明目前沒有捕獲請求。
  • Charles 功能介紹和使用教程 :灰色狀態說明是沒有開啟網速節流,綠色狀態說明開啟了網速節流。
  • Charles 功能介紹和使用教程 :灰色狀態說明是沒有開啟斷點,綠色狀態說明開啟了斷點。
  • Charles 功能介紹和使用教程 :編輯修改請求,點選之後可以修改請求的內容。
  • Charles 功能介紹和使用教程 :重複傳送請求,點選之後選中的請求會被再次傳送。
  • Charles 功能介紹和使用教程 :驗證選中的請求的響應。
  • Charles 功能介紹和使用教程 :常用功能,包含了 Tools 選單中的常用功能。
  • Charles 功能介紹和使用教程 :常用設定,包含了 Proxy 選單中的常用設定。

主介面檢視

Charles 主要提供兩種檢視封包的檢視,分別名為 StructureSequence

  • Structure: 此檢視將網路請求按訪問的域名分類。
  • Sequence: 此檢視將網路請求按訪問的時間排序。

使用時可以根據具體的需要在這兩種檢視之前來回切換。請求多了有些時候會看不過來,Charles 提供了一個簡單的 Filter 功能,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網路請求。

對於某一個具體的網路請求,你可以檢視其詳細的請求內容和響應內容。如果請求內容是 POST 的表單,Charles 會自動幫你將表單進行分項顯示。如果響應內容是 JSON 格式的,那麼 Charles 可以自動幫你將 JSON 內容格式化,方便你檢視。如果響應內容是圖片,那麼 Charles 可以顯示出圖片的預覽。

Charles 選單介紹

Charles 的主選單包括:FileEditViewProxyToolsWindowHelp。用的最多的主選單分別是 ProxyTools

Proxy 選單

Charles 是一個 HTTP 和 SOCKS 代理伺服器。代理請求和響應使 Charles 能夠在請求從客戶端傳遞到伺服器時檢查和更改請求,以及從伺服器傳遞到客戶端時的響應。下面主要介紹 Charles 提供的一些代理功能。Proxy 選單的檢視如下圖所示:

Charles 功能介紹和使用教程

Proxy 選單包含以下功能:

  • Start/Stop Recording:開始/停止記錄會話。
  • Start/Stop Throttling:開始/停止節流。
  • Enable/Disable Breakpoints:開啟/關閉斷點模式。
  • Recording Settings:記錄會話設定。
  • Throttle Settings:節流設定。
  • Breakpoint Settings:斷點設定。
  • Reverse Proxies Settings:反向代理設定。
  • Port Forwarding Settings:埠轉發。
  • Windows Proxy:記錄計算機上的所有請求。
  • Proxy Settings:代理設定。
  • SSL Proxying Settings:SSL 代理設定。
  • Access Control Settings:訪問控制設定。
  • External Proxy Settings:外部代理設定。
  • Web Interface Settings:Web 介面設定。

Recording Settings(記錄會話設定)

Recording Settings 和 Start/Stop Recording 配合使用,在 Start Recording 的狀態下,可以通過 Recording Settings 配置 Charles 的會話記錄行為。Recording Settings 的檢視如下圖所示:

Charles 功能介紹和使用教程
Recording Settings 有 OptionsIncludeExclude 三個選項卡:

  • Options:通過 Recording Size Limits 限制記錄資料的大小。當 Charles 記錄時,請求、響應頭和響應體儲存在記憶體中,或寫入磁碟上的臨時檔案。有時,記憶體中的資料量可能會變得太多,Charles 會通知您並停止錄製。在這種情況下,您應該清除 Charles 會話以釋放記憶體,然後再次開始錄製。在錄製設定中,您可以限制 Charles 將記錄的最大大小; 這根本不會影響你的瀏覽,Charles 僅會停止錄製。
  • Include:只有與配置的地址匹配的請求才會被錄製。
  • Exclude:只有與配置的地址匹配的請求將不會被錄製。

IncludeExclude 選項卡的操作相同,選擇 Add,然後填入需要監控的Procotol、Host 和 Port等資訊,這樣就達到了過濾的目的。如下圖所示:

Charles 功能介紹和使用教程
還有一種方法就是在一個請求網址上右擊選擇 Focus,然後其他的請求就會被放到一個叫 Other Host 的分類裡面,這樣也達到了過濾的目的。

Throttle Settings(節流設定)

Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的狀態下,可以通過 Throttle Settings 配置 Charles 的網速模擬配置。Throttle Settings 的檢視如下圖所示:

Charles 功能介紹和使用教程
勾選 Enable Throttling 啟用網速模擬配置,在 Throttle Preset 下選擇網路型別即可,具體設定可以根據實際情況自行設定。如果只想模擬指定網站的慢速網路,可以再勾選上圖中的 Only for selected hosts 項,然後在對話方塊的下半部分設定中增加指定的 hosts 項即可。

Throttle Settings 檢視中的選項含義如下:

  • Bandwidth:頻寬
  • Utilistation:利用百分比
  • Round-trip:往返延遲
  • MTU:位元組

Breakpoint Settings(斷點設定)

Breakpoint Settings 和 Enable/Disable Breakpoints 配合使用,在 Enable Breakpoints 的狀態下,可以通過 Breakpoint Settings 配置 Charles 的斷點模式。Breakpoint Settings 的檢視如下圖所示:

Charles 功能介紹和使用教程
勾選 Enable Breakpoints 啟用斷點模式,選擇 Add,然後填入需要監控的Scheme、Procotol、Host 和 Port 等資訊,這樣就達到了設定斷點的目的。然後可以來觀察或者修改請求或者返回的內容,但是在這過程中需要注意請求的超時時間問題。或者可以在某個想要設定斷點的請求網址上右擊選擇 Breakpoints 來設定斷點。

Reverse Proxies Settings(反向代理設定)

反向代理在本地埠上建立 Web 伺服器,該埠透明地將請求代理給遠端 Web 伺服器。反向代理上的所有請求和響應都可以記錄在 Charles 中。

如果您的客戶端應用程式不支援使用 HTTP 代理,或者您希望避免將其配置為使用代理,那麼反向代理很有用。建立原始目標 Web 伺服器的反向代理,然後將客戶端應用程式連線到本地埠; 反向代理對客戶端應用程式是透明的,使您可以檢視 Charles 以前可能無法訪問的流量。

有關反向代理的更多資訊,請訪問 Reverse proxy

Port Forwarding Settings(埠轉發)

可以將任何 TCP/IPUDP 埠配置為使用 Port Forwarding 工具從 Charles 轉發到遠端主機。這樣可以除錯 Charles 中的任何協議。

在 Macromedia Flash 中除錯 XMLSocket 連線時,這尤其有用。

還可以使用 Charles 作為 SOCKS 代理,因此無需設定埠轉發。

Windows Proxy(記錄計算機上的所有請求)

如果想要抓取電腦端的請求,勾選 Windows Proxy 選項即可;如果只需要抓取手機請求,則取消勾選這個選項。

Proxy Settings(代理設定)

Proxy Settings 的檢視如下圖所示:

Charles 功能介紹和使用教程
代理埠預設為 8888(可以修改),並且勾上 Enable transparent HTTP proxying 就完成了在 Charles 上的代理設定。

SSL Proxy Settings(SSL 代理設定)

SSL Proxy Settings 的檢視如下圖所示:

Charles 功能介紹和使用教程
勾上 Enable SSL proxying 就完成了在 Charles 上的 SSL 代理設定。之後也可以選擇 Add,然後填入需要監控的 Host 和 Port 資訊,這樣就達到了針對某個域名啟用 SSL 代理的目的。

Access Control Settings(訪問控制設定)

Access Control Settings 表示訪問控制設定。訪問控制列表確定誰可以使用此 Charles 例項。通常,您在自己的計算機上執行 Charles,並且您只打算自己使用它,因此 localhost 始終包含在訪問控制列表中。也可以選擇 Add,然後填入允許訪問的 IP,這樣就達到了允許某個 IP 訪問 Charles 的目的。

External Proxy Settings(外部代理設定)

External Proxy Settings 表示外部代理設定。可能在網路上有一個代理伺服器,必須使用該代理伺服器才能訪問 Internet。在這種情況下,需要將 Charles 配置為在嘗試訪問 Internet 時使用現有代理。

可以配置單獨的代理地址和埠:

  • HTTP
  • HTTPS
  • SOCKS

如果您有 SOCKS 代理,Charles 將把它用於所有非 HTTP(S) 流量,例如埠轉發。

Web Interface Settings(Web 介面設定)

Web Interface Settings 表示 Web 介面設定。Charles 有一個 Web 介面,可以讓您從瀏覽器控制 Charles,或使用 Web 介面作為 Web 服務使用外部程式。

在 External Proxy Settings 檢視中勾選 Enable the web interface 選項啟用 Web 介面。可以允許匿名訪問,也可以配置使用者名稱和密碼。還可以通過在配置使用 Charles 作為其代理的 Web 瀏覽器中訪問 http://control.charles/ 來訪問 Web 介面。

Web介面提供對以下功能的訪問:

  • 節流控制
    • 啟用或停用任何已配置的限制預設
  • 錄音控制
    • 開始和停止會話錄製
  • 工具
    • 啟用和停用工具
  • 會話控制
    • 清除當前會話
    • 以任何支援的格式匯出當前會話
    • 以 Charles 的本機會話格式下載當前會話
  • 退出查爾斯

通過檢查 Web 介面 HTML ,您可以推匯出如何將其用作 Web 服務來自動化 Charles。

Tools 選單

Charles 是一個 HTTP 和 SOCKS 代理伺服器,所有的請求都會經過 Charles。下面主要介紹 Charles 提供的一些實用工具。Tools 選單的檢視如下圖所示:

Charles 功能介紹和使用教程

Tools 選單包含以下功能:

  • No Caching Settings:禁用快取設定。
  • Block Cookies Settings:禁用 Cookie設定。
  • Map Remote Settings:遠端對映設定。
  • Map Local Settings:本地對映設定。
  • Rewrite Settings:重寫設定。
  • Black List Settings:黑名單設定。
  • White List Settings:白名單設定。
  • DNS Spoofing Settings:DNS 欺騙設定。
  • Mirror Settings:映象設定。
  • Auto Save Settings:自動儲存設定。
  • Client Process Settings:客戶端程式設定。
  • Compose:編輯修改。
  • Repeat:重複發包。
  • Repeat Advanced:高階重複發包。
  • Validate:驗證。
  • Publish Gist:釋出要點。
  • Import/Export Settings:匯入/匯出設定。
  • Profiles:配置檔案。
  • Publish Gist Settings:釋出要點設定。

No Caching Settings(禁用快取)

No Caching 工具可防止客戶端應用程式(如 Web 瀏覽器)快取任何資源。因此,始終向遠端網站發出請求,您始終可以看到最新版本。

適用範圍

該工具可以作用於每個請求(選中 Enable No Caching 即可),也可以僅對你配置的請求啟用(啟用 No Caching 的同時,請選中 Only for selected locations)。當用於選定的請求時,可以使用簡單但功能強大的模式匹配將工具的效果限制為指定的主機和路徑。

工作原理

No Caching 工具通過操縱控制響應快取的 HTTP 請求頭來防止快取。從請求中刪除 If-Modified-Since 和 If-None-Match 請求頭,新增 Pragma:no-cache 和 Cache-control:no-cache。從響應中刪除 Expires,Last-Modified 和ETag 請求頭,新增 Expires:0 和 Cache-Control:no-cache。

Block Cookies Settings(禁用 Cookie)

Block Cookies 工具阻止了 Cookie 的傳送和接收。它可用於測試網站,就像在瀏覽器中禁用了 Cookie 一樣。 請注意,網路爬蟲(例如 Google)通常不支援 Cookie,因此該工具還可用於模擬網路爬蟲網站的檢視。

適用範圍

該工具可以作用於每個請求(選中 Enable Block Cookies 即可),也可以僅對你配置的請求啟用(啟用 Block Cookies 的同時,請選中 Only for selected locations)。當用於選定的請求時,可以使用簡單但功能強大的模式匹配將工具的效果限制為指定的主機和路徑。

工作原理

Block Cookies 工具通過操縱控制響應 Cookies 的 HTTP 請求頭來禁用 Cookies。從請求中移除 Cookie 請求頭,防止 Cookie 值從客戶端應用程式(例如 Web 瀏覽器)傳送到遠端伺服器。從響應中刪除 Set-Cookie 請求頭,防止請求設定客戶端應用程式從遠端伺服器接收的 Cookie。

Map Remote Settings(遠端對映)

Map Remote 工具根據配置的對映更改請求站點,以便從新站點透明地提供響應,就好像這是原始請求一樣。

通過此對映,您可以從另一個站點提供全部或部分站點。例如:

  • 可以把 xk72.com/charles/ 對映到 localhost/charlesdev/ 來為 xk72.com 提供一個子目錄;
  • 可以把 xk72.com/*.php 這種指定字尾的所有檔案對映到 localhost/charlesdev/。
使用建議

如果您擁有站點的開發版本並且希望能夠通過開發提供的某些請求瀏覽實時站點,則 Map Remote 非常有用。例如,您可能希望從開發伺服器提供 css 和 images 目錄。使用 live.com/css/ 等對映到 dev.com/css/live.com/*.cssdev.com

對映型別
  • 可以將目錄對映到目錄,如 xk72.com/charles/ 對映到 localhost/charlesdev/;
  • 可以將檔案對映到檔案,如 xk72.com/charles/dow… 對映到 abc.com/testing/tes…
  • 可以將帶有檔案模式的目錄對映到目錄,如 xk72.com/charles/*.p… 到 localhost/charlesdev/;
  • 如果在目標對映中未指定路徑,則 URL 的路徑部分將不會更改。如果要對映到根目錄,請在目標路徑欄位中已 / 結尾。
HTTPS

Map Remote 工具可以將 HTTP 請求對映到 HTTPS 目標,反之亦然,因此您可以將 HTTP 或 HTTPS 站點對映到其對立面。

站點匹配

每個站點匹配可能包含協議、主機、埠和路徑模式,以匹配特定的 URL。站點可能包括萬用字元。當您向此工具新增新站點時,可能會找到有關建立站點匹配的更多幫助。

Map Local Settings(本地對映)

Map Local 工具使您可以使用本地檔案,就像它們是遠端網站的一部分一樣。您可以在本地開發檔案,並像線上上一樣測試它們。本地檔案的內容將返回給客戶端,就像它是正常的遠端響應一樣。

Map Local 可以大大加快開發和測試速度,否則您必須將檔案上傳到網站以測試結果。使用 Map Local,您可以在開發環境中安全地進行測試。

動態檔案

動態檔案(例如包含伺服器端指令碼的檔案)不會由 Map Local 執行,因此如果檔案中有任何指令碼,指令碼將按原樣返回到瀏覽器,這可能不是預期的結果。如果您想使用動態檔案,就好像它們是遠端網站的一部分一樣,請參閱 Map Remote 工具。

工作原理

當請求與 Map Local 對映匹配時,它會檢查與路徑匹配的本地檔案。它不包括查詢字串(如果有)。如果在本地找到所請求的檔案,則將其作為響應返回,就好像它是從遠端站點載入的一樣,因此它對客戶端是透明的。如果在本地找不到所請求的檔案,那麼該請求會像平常一樣由網站提供,返回由真正的伺服器提供的資料。

站點匹配

每個站點匹配可能包含協議、主機、埠和路徑模式,以匹配特定的 URL。站點可能包括萬用字元。當您向此工具新增新站點時,可能會找到有關建立站點匹配的更多幫助。

Rewrite Settings(重寫)

Rewrite 工具允許建立請求和響應在通過 Charles 時修改他們的規則。如:新增或更改頭資訊、搜尋和替換響應內容中的某些文字等。

重寫集

重寫集可以單獨啟用和停用。每個集合包含站點和規則的列表。這些站點選擇規則將要執行的請求和響應。

重寫規則

每個規則都描述了一次重寫操作。規則可能會影響請求URL的 Header,正文或部分內容;它可以根據請求或響應來操作;它可以定義搜尋、替換或者僅替換樣式重寫。

站點匹配

每個站點匹配可能包含協議、主機、埠和路徑模式,以匹配特定的 URL。站點可能包括萬用字元。當您向此工具新增新站點時,可能會找到有關建立站點匹配的更多幫助。

除錯

當重寫操作未按預期工作時,重寫工具可能難以除錯。如果您遇到問題,請嘗試新增一個非常基本的規則,例如新增明顯頭資訊的規則,以便您可以檢視規則是否與請求完全匹配。同時開啟錯誤日誌中的除錯,以獲取從 Charles 中的 Window 選單訪問的錯誤日誌中列印的一些除錯資訊。

Black List Settings(黑名單)

Black List 工具允許輸入應該被阻止的域名。當 Web 瀏覽器嘗試從被列入黑名單的域名請求任何頁面時,該請求將被 Charles 阻止。您還可以輸入萬用字元來阻止其子域名。

White List Settings(白名單)

Black List 工具允許輸入僅僅被允許的域名。Black List 工具將阻止除被列入白名單的域名之外的所有請求。

白名單工具用於僅允許指定的域名;黑名單工具,用於僅遮蔽指定的域名。

如果一個請求與“黑名單”和“白名單”都匹配,則該請求會被阻止。

DNS Spoofing Settings(DNS 欺騙)

DNS Spoofing 工具允許通過將自己的主機名指定給遠端地址對映來欺騙 DNS 查詢。 當請求通過 Charles 時,您的 DNS 對映將優先。

Charles 包含配置的域名到 IP 地址對映的列表。當針對列出的域名發出請求時,Spoof DNS 外掛會發現欺騙 IP 將請求重定向到該地址。主機HTTP標頭保持不變,因此就像您的 DNS 伺服器返回欺騙性 IP一樣。

虛擬主機

虛擬主機是指單個IP地址上有多個站點,Web 伺服器根據瀏覽器中鍵入的名稱確定要請求的站點。更準確地說,它檢視請求中傳送的主機頭。

如果沒有為您的站點設定 DNS,那麼您通常無法測試它,因為您不能只輸入 IP 地址,因為伺服器無法獲取名稱,因此無法將請求與網站。使用 DNS 欺騙工具來克服此問題。

Mirror Settings(映象)

Mirror 工具會在瀏覽指定站點時,把接收到的響應內容克隆一份,並儲存在磁碟上指定的路徑下。

儲存檔案的路徑會與瀏覽站點的目錄結構相同,並且 Charles 會為主機名建立一個根目錄。檔名從 URL 匯出並轉換為適合的資料進行儲存。查詢字串包含在檔名中。如果收到相同 URL 的兩個響應,則後面一個檔案會覆蓋前面的同名檔案,因此儲存在映象中在的響應內容將始終為最新的。

選定站點

可以為每個請求啟用該工具,也可以僅為指定站點啟用該工具。當用於選定的站點時,可以使用簡單但功能強大的模式匹配將工具的效果限制為指定的主機和/或路徑。

副作用

如果為請求啟用映象工具,它將導致任何壓縮或編碼的響應被解碼。因此,如果伺服器提供了壓縮響應,Charles 將在傳遞給客戶端之前對其進行解壓縮,這通常不會產生任何影響。但是如果您已經構建了自己的客戶端,或者客戶端希望得到壓縮響應,此時將會產生影響。使用 web 瀏覽器則沒有任何影響。

Auto Save Settings(自動儲存)

Auto Save 工具會按設定的時間間隔自動儲存和清除記錄會話。

如果您讓 Charles 長時間監控網路活動,並希望將記錄分解為可管理的單元,或者避免因資料量過大而可能出現的記憶體不足情況,這將非常有用。

輸入以分鐘為單位的儲存間隔以及儲存會話檔案的目錄。您可以選擇是否在每次執行 Charles 時啟動 Auto Save 工具,否則在 Charles 啟動時將始終禁用 Auto Save 工具。

會話檔案的名稱中儲存時間戳,格式為 yyyyMMddHHmm,即年月日時分,以便按字母順序排序時,它們以正確的順序顯示。

Client Process Settings(客戶端程式)

Client Process 工具顯示負責發出每個請求的本地客戶端程式的名稱。客戶端程式通常是您的 Web 瀏覽器(例如 firefox.exe),但客戶端程式工具可以幫助您發現許多可能未知的 HTTP 客戶端。

客戶端程式名稱顯示在每個請求的 Notes 區域中。

如果您可以在 Charles 中看到不確定原始程式的請求,則客戶端程式工具很有用。 它僅適用於在執行 Charles 的計算機上發出的請求。

在 Charles 接受每個連線之前,該工具將引入一個短暫的延遲。 延遲通常不明顯或不顯著。

選定站點

可以為每個請求啟用該工具,也可以僅為指定站點啟用該工具。當用於選定的站點時,可以使用簡單但功能強大的模式匹配將工具的效果限制為指定的主機和/或路徑。

Compose(編輯修改)

Compose 工具允許在原有的請求基礎上修改。

Repeat(重複)

Repeat 工具允許選擇一個請求並重復它。Charles 將請求重新傳送到伺服器,並將響應顯示為新請求。如果您正在進行後端更改並希望在瀏覽器(或其他客戶機)中重複請求的情況下測試這些更改,那麼這將非常有用。特別是如果重新建立請求需要花費一些精力,例如在遊戲中獲得分數,這將節省大量精力。

重複請求是在 Charles 內部完成的,因此無法在瀏覽器或其他客戶端中檢視響應,響應只能在 Charles 中檢視。

Repeat Advanced(高階重複)

Repeat Advanced 工具擴充套件了 Repeat 工具,提供了迭代次數和併發數的選項。這對於負載測試非常有用。

Validate(驗證)

Validate 工具允許 Charles 通過將它們傳送到 W3C HTML 驗證器、W3C CSS 驗證器和 W3C Feed 驗證器來驗證記錄的響應。

驗證報告在 Charles 中顯示,其中包含與響應源中相應行相關聯的任何警告或錯誤(雙擊錯誤訊息中的行號可以切換到源檢視)。

因為 Charles 測試它記錄的響應,所以它可以測試不易測試的場景,例如在提交表單後呈現錯誤訊息。

重新驗證

驗證後,可以從驗證結果中選擇響應並 Repeat,重複原始請求,然後重新驗證結果。

Publish Gist(釋出要點)

Publish Gist 工具可以將將所選請求和響應作為要點發布。預設情況下,這個要點將匿名釋出,這意味著你將無法做到 刪除它。可以在 Tools 選單的 Publish Gist Settings 中授權 Charles 使用您的 GitHub 帳戶進行釋出。

Import/Export Settings(匯入/匯出)

Import/Export 工具允許匯入/匯出 Charles 的 ProxyToolsPreferences 等設定。

Profiles(配置)

Profiles 包含所有配置設定的完整副本。

每次更改當前設定時,系統都會更新當前活動的配置檔案,當您更改活動配置檔案時,所有設定都將恢復為上次使用該配置檔案時的狀態。

請注意,如果匯入已儲存的配置,則會覆蓋當前配置檔案的設定。建議使用匯入/匯出來備份或建立當前配置和配置檔案的快照,以維護多個並行工作區。

Charles 使用教程

通過 Charles 進行 PC 端抓包

Charles 會自動配置瀏覽器和工具的代理設定,所以說開啟工具直接就已經是抓包狀態了。只需要保證一下幾點即可:

  1. 確保 Charles 處於 Start Recording 狀態。
  2. 勾選 Proxy | Windows ProxyProxy | Mozilla FireFox Proxy

通過 Charles 進行移動端抓包

手機抓包的原理,和 PC 類似,手機通過把網路委託給 Charles 進行代理與服務端進行對話。具體步驟如下:

  1. 使手機和電腦在一個區域網內,不一定非要是一個 IP 段,只要是在同一個路由器下即可。

  2. 電腦端配置:

    • 關掉電腦端的防火牆(這點很重要)。
    • 開啟 Charles 的代理功能:通過主選單開啟 Proxy | Proxy Settings 彈窗,填入代理埠(埠預設為 8888,不用修改),勾選 Enable transparent HTTP proxying
    • 如果不需要抓取電腦上的請求,可以取消勾選 Proxy | Windows ProxyProxy | Mozilla FireFox Proxy
  3. 手機端配置:

    • 通過 Charles 的主選單 Help | Local IP Address 或者通過命令列工具輸入 ipconfig 檢視本機的 IP 地址。
    • 設定代理:開啟手機端的 WIFI 代理設定,輸入電腦 IP 和 Charles 的代理埠。
  4. 設定好之後,我們開啟手機上的任意需要網路請求的程式,就可以看到 Charles 彈出手機請求連線的確認選單(只有首次彈出),點選 Allow 即可完成設定。

  5. 完成以上步驟,就可以進行抓包了。

通過 Charles 進行 HTTPS 抓包

HTTPS 的抓包需要在 HTTP 抓包基礎上再進行設定。需要完成一下步驟:

  1. 完成 HTTP 抓包配置。
  2. 電腦端安裝 Charles 證照:通過 Charles 的主選單 Help | SSL Proxying | Install Charles Root Certificate 安裝證照。
  3. 設定 SSL 代理:通過主選單開啟 Proxy | SSL Proxy Settings 彈窗,勾選 Enable SSL proxying
  4. 移動端安裝 Charles 證照:通過 Charles 的主選單 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安裝證照。
  5. 設定好之後,我們開啟手機上的任意需要網路請求的程式,就可以看到 Charles 彈出手機請求連線的確認選單(只有首次彈出),點選 Allow 即可完成設定。
  6. 完成以上步驟,就可以進行 HTTPS 抓包了。

Charles License

  • Registered Name: https://zhile.io
  • License Key: 48891cf209c6d32bf4

註冊碼來自於網路,註冊碼 Windows 和 Mac 通用。

致謝

相關文章