iOS開發系列-Charles

來源:互聯網
上載者:User

標籤:顯示   方案   file   解決   option   本機   seq   控制   一件事   

概述

Charles相當於一個插在伺服器和用戶端之間的“過濾器”。當用戶端向伺服器發起請求的時候,先到charles進行過濾,然後charles在把最終的資料發送給伺服器;
注意:此時charles發給伺服器的資料,不一定是用戶端請求的資料;charles在接到用戶端的請求時可以自由的修改資料,甚至可以直接Block用戶端發的請求
伺服器接收請求後的返回資料,也會先到charles,經過charles過濾後再發給用戶端;同理:用戶端接收的資料,不一定就是伺服器返回的資料,而是charles給的資料;

Charles使用Charles配置

如果想要抓包,第一件事情,就是把charles設定成為本機和服務端之間的”過濾器”;讓所有的網路請求全部經過charles,這樣就可以捕獲並記錄到你請求的內容和返回資料了。

設定iPhone的HTTP代理

啟動 Charles 後,第一次 Charles 會詢問你是否把Charles設定為系統的代理,選擇Allow。這樣就配置完成了。

charles 主介面的介紹

Charles 主要提供兩種查看封包的視圖,分別名為 “Structure” 和 “Sequence”。
– Structure/結構視圖,將網路請求按訪問的網域名稱分類,比如某個網域名稱下有n個資源請求,那麼所有此網域名稱下的請求都會在這裡做一個詳細的分類;

  • Sequence/序列視圖,將網路請求按訪問的時間排序,按照你的電腦的發送請求順序進行。
Charles Filter過濾

求多了有些時候會看不過來,對於需要抓取的某個請求,通常情況下,我們需要對網路請求進行過濾,只監控向指定目錄伺服器上發送的請求。對於這種需求,以下幾種辦法:

方案一

Charles 提供了一個簡單的 Filter 功能,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網路請求。
在主介面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如我查看的網域名稱地址

方案二

在 Charles 的功能表列選擇 “Proxy”->”Recording Settings”,然後選擇 Include 欄,選擇添加一個項目,然後填入需要監控的協議,主機地址,連接埠號碼。這樣就可以只截取目標網站的封包了;

Charles 網路環境類比

在開發中中有些bug需要在網路慢的情境中複現。我們可以利用Charles控制手機的網速。
在 Charles 的功能表列選擇 “Proxy”->”Throttle(節流) Settings”,然後勾選 Enable Throttling 選項,選擇添加一個Throttle preset。這樣就可以了;

Charles 抓包內容亂碼解決

在安裝的Charles程式右鍵顯示報內容找到Info.plist檔案JVMOptions在預設的-Xmx512m後面敲空格 添加-Dfile.encoding=UTF-8

對於其它的一些使用方法可參考:http://zhubangbang.com/charlesproxy

iOS開發系列-Charles

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.