作者:Mitchell
一、簡介
- 支持 SLL 代理.可以截取分析 SSL 的請求
- 支持流量控制.可以模擬慢速網絡,以及等待長時間的請求.
- 支持 AJAX 調試,可以自動將 JSON 或者 XML 數據格式化,方便查看.
- 支持 AMF 調試,可以將 Flash Remoting 或 Flex Remoting 信息而石化,方便查看.
- 支持重發網絡請求,方便后端調試
- 支持修改網絡請求參數
- 支持網絡請求的截取和動態修改
- 檢查 HTML,CSS 和 RSS 內容是否符合 W3C 標準.
二、關于信息過濾
- 第一種方式:在主界面中部的 filter 欄中填入要過濾出來的關鍵字.例如服務器地址是: http:xxxx.com.
-
第二種方式: 在上方菜單欄選擇 "Proxy -> Recording Settings", 然后選擇 Include 欄, 選擇添加項目,然后填入所需要監控的協議,主機地址,端口號。這樣就可以只截取目標網站的封包了,
屏幕快照 2015-12-06 下午9.45.59.png
三、協助 iOS 開發
-
Charles 上的設置:
Proxy -> Proxy Settings,填入代理端口8888,并且勾選“Enable transparent HTTP proxying”
屏幕快照 2015-12-06 下午9.54.27.png - iPhone 上的設置
首先獲取電腦的 IP:
進入 terminal ifconfig en0 獲取到 IP
進入手機設置-> 無線局域網中->點擊詳情將“HTTP 代理”一項切換為手動,然后填上剛才獲取到的 IP 地址,以及端口號8888.
連接之后,Charles 上會彈出提示連接的框,點擊 allow 即可相連。
四、模擬慢速網絡
-
Proxy -> Throttle Setting ,如果想針對某些 host 來進行測試的話那么就勾選 Only for selected hosts,然后添加需要測試的 host 地址就可以了。
屏幕快照 2015-12-06 下午10.04.36.png
五、截取 SSL 信息
-
Charles 默認不截取 SSL 信息,可以右鍵點擊網站,然后讓 SSL 變的可以截取。
屏幕快照 2015-12-06 下午10.07.56.png
六、修改網絡請求內容
-
右鍵點擊連接,點擊 Edit,然后下方會重新創建出一個網絡請求,可以在這個網絡請求中修改
所需要修改的參數,然后點擊 excute 來重新發送這個網絡請求。
屏幕快照 2015-12-06 下午10.11.52.png
七、修改服務器返回的內容
- Map 功能適合長期地將某一些請求重定向到另一個網絡地址或本地文件
- Rewrite 工恩呢剛適合對網絡請求進行正則替換
- Breakpoints 功能適合做一些臨時性的修改
八、Map 功能
Charles 的 Map 功能分 Map Remote 和 Map Local兩種,前者是將制定的網絡請求重定向到另一個網址,MapLocal 是將制定的網絡請求重定向到本地文件。
-
Map Remote 網絡重定向,從哪個服務器重定向到哪個服務器
屏幕快照 2015-12-06 下午10.22.32.png
屏幕快照 2015-12-06 下午10.23.52.png -
Map Local 將網絡請求通過 Map Local 映射到了本地的一個經過修改的文件中:
屏幕快照 2015-12-06 下午10.28.41.png
九、Rewrite 功能
-
Rewrite 功能適合對某一類的網絡請求進行一些正則替換,以達到修改結果的目的。
屏幕快照 2015-12-06 下午10.38.22.png
十、Breakpoints 功能
- 有時候,我們只是想臨時修改一次網絡請求結果,使用 Rewrite 功能雖然也可以達到目的,但是過于麻煩,對于臨時性的修改,我們最好使用 Breakpoints 功能。Charles 可以攔截網絡請求。
參考鏈接
Charles 主要功能列表:http://www.charlesproxy.com/overview/about-charles/
Charles 官方網站:http://www.charlesproxy.com/