日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS开发工具——网络封包分析工具Charles

發布時間:2025/7/25 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发工具——网络封包分析工具Charles 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS開發工具——網絡封包分析工具Charles

簡介

Charles是在Mac下常用的截取網絡封包的工具,在做iOS開發時,我們為了調試與服務器端的網絡通訊協議,常常需要截取網絡封包來分析。Charles通過將自己設置成系統的網絡訪問代理服務器,使得所有的網絡訪問請求都通過它來完成,從而實現了網絡封包的截取和分析。

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

相關廠商內容

Droid Plugin如何實現免安裝運行第三方插件APK?

在容器時代,云計算下一步將如何發展?

ArchSummit8折優惠期,節省1360元/張!

相關贊助商

全球架構師峰會,12月18-19日,北京·國際會議中心,8折報名。

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

Charles主要的功能包括:

  • 支持SSL代理。可以截取分析SSL的請求。
  • 支持流量控制。可以模擬慢速網絡以及等待時間(latency)較長的請求。
  • 支持AJAX調試。可以自動將json或xml數據格式化,方便查看。
  • 支持AMF調試。可以將Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  • 支持重發網絡請求,方便后端調試。
  • 支持修改網絡請求參數。
  • 支持網絡請求的截獲并動態修改。
  • 檢查HTML,CSS和RSS內容是否符合W3C標準。
  • 安裝Charles

    去Charles的官方網站(http://www.charlesproxy.com)下載最新版的Charles安裝包,是一個dmg后綴的文件。打開后將Charles拖到Application目錄 下即完成安裝。

    安裝SSL證書

    如果你需要截取分析SSL協議相關的內容。那么需要安裝Charles的CA證書。具體步驟如下:

  • 去?http://www.charlesproxy.com/ssl.zip?下載CA證書文件。
  • 解壓該zip文件后,雙擊其中的.crt文件,這時候在彈出的菜單中選擇“總是信任”,如下所示:

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

  • 將Charles設置成系統代理

    之前提到,Charles是通過將自己設置成代理服務器來完成封包截取的,所以使用Charles的第一步是將其設置成系統的代理服務器。

    啟動Charles后,第一次Charles會請求你給它設置系統代理的權限。你可以輸入登錄密碼授予Charles該權限。你也可以忽略該請求,然后在需要將Charles設置成系統代理時,選擇菜單中的 "Proxy" -> "Mac OS X Proxy"來將Charles設置成系統代理。如下所示:

    之后,你就可以看到源源不斷的網絡請求出現在Charles的界面中。

    Charles主界面介紹

    Charles主要提供2種查看封包的視圖,分別名為“Structure”和"Sequence"。

  • Structure視圖將網絡請求按訪問的域名分類。
  • Sequence視圖將網絡請求按訪問的時間排序。
  • 大家可以根據具體的需要在這兩種視圖之前來回切換。

    對于某一個具體的網絡請求,你可以查看其詳細的請求內容和響應內容。如果響應內容是JSON格式的,那么Charles可以自動幫你將JSON內容格式化,方便你查看。

    過濾網絡請求

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

  • 在主界面的中部的Filter欄中填入需要過濾出來的關鍵字。例如我們的服務器的地址是:http://yuantiku.com,那么只需要在Filter欄中填入yuantiku即可。

  • 在Charles的菜單欄選擇"Proxy"->"Recording Settings",然后選擇Include欄,選擇添加一個項目,然后填入需要監控的協議,主機地址,端口號。這樣就可以只截取目標網站的封包了。如下圖所示:

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

    截取iPhone上的網絡封包

    Charles通常用來截取本地上的網絡封包,但是當我們需要時,我們也可以用來截取其它設備上的網絡請求。下面我就以iPhone為例,講解如何進行相應操作。

    Charles上的設置

    要截取iPhone上的網絡請求,我們首先需要將Charles的代理功能打開。在Charles的菜單欄上選擇“Proxy”->"Proxy Settings",填入代理端口8888,并且勾上"Enable transparent HTTP proxying" 就完成了在Charles上的設置。如下圖所示:

    iPhone上的設置

    首先我們需要獲取Charles運行所在電腦的IP地址,打開Terminal,輸入ifconfig en0, 即可獲得該電腦的IP,如下圖所示:

    在iPhone的 “設置”->“無線局域網“中,可以看到當前連接的wifi名,通過點擊右邊的詳情鍵,可以看到當前連接上的wifi的詳細信息,包括IP地址,子網掩碼等信息。在其最底部有“HTTP代理”一項,我們將其切換成手動,然后填上Charles運行所在的電腦的IP,以及端口號8888,如下圖所示:

    設置好之后,我們打開iPhone上的任意需要網絡通訊的程序,就可以看到Charles彈出iPhone請求連接的確認菜單(如下圖所示),點擊“Allow”即可完成設置。

    截取SSL信息

    Charles默認并不截取SSL的信息,如果你想對截取某個網站上的所有SSL網絡請求,可以在該請求上右擊,選擇SSL proxy,如下圖所示:

    這樣,對于該Host的所有SSL請求可以被截取到了。

    模擬慢速網絡

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

    在Charles的菜單上,選擇"Proxy"->"Throttle Setting"項,在之后彈出的對話框中,我們可以勾選上“Enable Throttling”,并且可以設置Throttle Preset的類型。如下圖所示:

    如果我們只想模擬指定網站的慢速網絡,可以再勾選上圖中的"Only for selected hosts"項,然后在對話框的下半部分設置中增加指定的hosts項即可。

    修改網絡請求內容

    有些時候為了調試服務器的接口,我們需要反復嘗試不同參數的網絡請求。Charles可以方便地提供網絡請求的修改和重發功能。只需要在以往的網絡請求上點擊右鍵,選擇“Edit”,即可創建一個可編輯的網絡請求。如下所示:

    我們可以修改該請求的任何信息,包括url地址,端口,參數等,之后點擊“Execute”即可發送該修改后的網絡請求(如下圖所示)。Charles支持我們多次修改和發送該請求,這對于我們和服務器端調試接口非常方便。

    總結

    通過Charles軟件,我們可以很方便地在日常開發中,截取和調試網絡請求內容,分析封包協議以及模擬慢速網絡。用好Charles可以極大的方便我們對于帶有網絡請求的App的開發和調試。

    參考鏈接:

  • Charles主要的功能列表
  • Charles官網

  • 感謝李永倫對本文的審校。

    給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ)或者騰訊微博(@InfoQ)關注我們,并與我們的編輯和其他讀者朋友交流。

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的iOS开发工具——网络封包分析工具Charles的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。