iOS開發工具 網路封包分析工具Charles

2022-02-12 19:54:16 字數 3272 閱讀 4919

本部分的內容寫於2023年12月,2023年11月有更新,更新版的文章見:《charles 從入門到精通》

charles 是收費軟體,可以免費試用 30 天。試用期過後,未付費的使用者仍然可以繼續使用,但是每次使用時間不能超過 30 分鐘,並且啟動時將會有 10 秒種的延時。

因此,該付費方案對廣大使用者還是相當友好的,即使你長期不付費,也能使用完整的軟體功能。只是當你需要長時間進行封包除錯時,會因為 charles 強制關閉而遇到影響。

charles 主要的功能包括:

支援 ssl **。可以擷取分析 ssl 的請求。

支援流量控制。可以模擬慢速網路以及等待時間(latency)較長的請求。

支援 ajax 除錯。可以自動將 json 或 xml 資料格式化,方便檢視。

支援 amf 除錯。可以將 flash remoting 或 flex remoting 資訊格式化,方便檢視。

支援重發網路請求,方便後端除錯。

支援修改網路請求引數。

支援網路請求的截獲並動態修改。

檢查 html,css 和 rss 內容是否符合 w3c 標準。

解壓該 zip 檔案後,雙擊其中的 .crt 檔案,這時候在彈出的選單中選擇 「總是信任」,如下所示:

從鑰匙串訪問中即可看到新增成功的證書。如下所示:

之前提到,charles 是通過將自己設定成**伺服器來完成封包擷取的,所以使用 charles 的第一步是將其設定成系統的**伺服器。

啟動 charles 後,第一次 charles 會請求你給它設定系統**的許可權。你可以輸入登入密碼授予 charles 該許可權。你也可以忽略該請求,然後在需要將 charles 設定成系統**時,選擇選單中的 「proxy」 -> 「mac os x proxy」 來將 charles 設定成系統**。如下所示:

之後,你就可以看到源源不斷的網路請求出現在 charles 的介面中。

charles 主要提供 2 種檢視封包的檢視,分別名為 「structure」 和 「sequence」。

structure 檢視將網路請求按訪問的網域名稱分類。

sequence 檢視將網路請求按訪問的時間排序。

大家可以根據具體的需要在這兩種檢視之前來回切換。

對於某乙個具體的網路請求,你可以檢視其詳細的請求內容和響應內容。如果響應內容是 json 格式的,那麼 charles 可以自動幫你將 json 內容格式化,方便你檢視。

通常情況下,我們需要對網路請求進行過濾,只監控向指定目錄伺服器上傳送的請求。對於這種需求,我們有 2 種辦法。

在主介面的中部的 filter 欄中填入需要過濾出來的關鍵字。例如我們的伺服器的位址是: , 那麼只需要在 filter 欄中填入 yuantiku 即可。

在 charles 的選單欄選擇 「proxy」->」recording settings」,然後選擇 include 欄,選擇新增乙個專案,然後填入需要監控的協議,主機位址,埠號。這樣就可以只擷取目標**的封包了。如下圖所示:

通常情況下,我們使用方法 1 做一些臨時性的封包過濾,使用方法 2 做一些經常性的封包過濾。

charles 通常用來擷取本地上的網路封包,但是當我們需要時,我們也可以用來擷取其它裝置上的網路請求。下面我就以 iphone 為例,講解如何進行相應操作。

要擷取 iphone 上的網路請求,我們首先需要將 charles 的**功能開啟。在 charles 的選單欄上選擇 「proxy」->」proxy settings」,填入**埠 8888,並且勾上 「enable transparent http proxying」 就完成了在 charles 上的設定。如下圖所示:

在 iphone 的 「設定」->「無線區域網 「中,可以看到當前連線的 wifi 名,通過點選右邊的詳情鍵,可以看到當前連線上的 wifi 的詳細資訊,包括 ip 位址,子網掩碼等資訊。在其最底部有 「http **」 一項,我們將其切換成手動,然後填上 charles 執行所在的電腦的 ip,以及埠號 8888,如下圖所示:

這樣,對於該 host 的所有 ssl 請求可以被擷取到了。

在做 iphone 開發的時候,我們常常需要模擬慢速網路或者高延遲的網路,以測試在流動網路下,應用的表現是否正常。charles 對此需求提供了很好的支援。

在 charles 的選單上,選擇 「proxy」->」throttle setting」 項,在之後彈出的對話方塊中,我們可以勾選上 「enable throttling」,並且可以設定 throttle preset 的型別。如下圖所示:

如果我們只想模擬指定**的慢速網路,可以再勾選上圖中的 「only for selected hosts」 項,然後在對話方塊的下半部分設定中增加指定的 hosts 項即可。

有些時候為了除錯伺服器的介面,我們需要反覆嘗試不同引數的網路請求。charles 可以方便地提供網路請求的修改和重發功能。只需要在以往的網路請求上點選右鍵,選擇 「edit」,即可建立乙個可編輯的網路請求。如下所示:

我們可以修改該請求的任何資訊,包括 url 位址,埠,引數等,之後點選 「execute」 即可傳送該修改後的網路請求(如下圖所示)。charles 支援我們多次修改和傳送該請求,這對於我們和伺服器端除錯介面非常方便。

charles 主要的功能列表

charles 官網

iOS開發工具 網路封包分析工具Charles

charles是收費軟體,可以免費試用30天。試用期過後,未付費的使用者仍然可以繼續使用,但是每次使用時間不能超過30分鐘,並且啟動時將會有10秒種的延時。相關廠商內容 相關贊助商 為中小微企業提供一站式金融服務解決方案!因此,該付費方案對廣大使用者還是相當友好的,即使你長期不付費,也能使用完整的軟...

IOS開發之網路開發工具

ios開發之網路開發工具 網路檢測 void reachabilitymanager 停止網路監聽 若須要一直檢測網路狀態,能夠不停止,使其一直執行 manager.reachabilitymanager stopmonitoring get請求資料 pragma mark get request ...

Charles 網路封包分析工具

一 what charles工具是通過將自己設定成系統的網路訪問 伺服器,使得所有的網路訪問請求都通過它來完成,從而實現了網路封包的擷取和分析。它能實現以下 支援ssl 擷取分析ssl的請求。支援流量控制 模擬慢速網路以及等待時間 latency 較長的請求。支援ajax除錯 自動將json或xml...