安裝charles前端
若是是ubuntu版本:java
sudo apt-get update sudo apt-get install charles-proxy |
Charles是一款抓包修改工具,一個HTTP代理服務器,HTTP監視器,反轉代理服務器。它容許一個開發者查看全部鏈接互聯網的HTTP通訊·這些包括request, response和HTTP headers (包含cookies與caching信息),界面簡單直觀,易於上手,數據請求控制容易,修改簡單,抓取數據的開始暫停方便等等優點!ios
下載java的運行環境支持,裝好java環境後,下載charles的破解,裏面通常會有註冊的jar文件,直接替換安裝目錄lib下相同名稱的jar包(ps:不註冊的話,每次使用30分鐘,工具就會自動關閉)。ubuntu
下面是pc端的抓包使用狀況 Charles支持抓去http、https協議的請求,不支持socket。瀏覽器
而後charles會自動配置IE瀏覽器和工具的代理設置,因此說打開工具直接就已是抓包狀態了。 服務器
1 垃圾桶圖標,功能是clear,清理掉全部請求顯示信息。cookie
2 搜索關鍵字,使用ctrl+f實現,能夠設置搜索的範圍。數據結構
3 圓圈中間紅點的圖標,控制抓取的數據顯示或者不顯示的設置。 通常都使其爲不顯示抓去狀態,只有當本身測試的時候,令其爲抓取並顯示狀態。app
4 編輯修改功能,能夠編輯修改任意請求信息,修改完畢後點擊Execute就能夠發送一個修改後的請求數據包。socket
5 抓取的數據包的請求地址的url信息顯示。
6 抓取的數據包的請求內容的信息顯示。post請求能夠顯示form形式,直觀明瞭。
7 返回數據內容信息的顯示。
其中五、六、7中都有各類形式的數據顯示形式,其中raw是原始數據包的狀態。
charles抓包的顯示,支持兩種模式,Structure和Sequence,其優勢分別以下。
Structure形式以下圖 優勢:能夠很清晰的看到請求的數據結構,並且是以域名劃分請求信息的,能夠很清晰的去分析和處理數據。
Sequence形式以下圖 優勢:能夠很清晰的看到所有請求,不用一層一層的去點開,這裏是以數據請求的順序去執行的,也就是說那個請求快就在前面顯示。
具體使用哪一種形式,看我的喜愛。
這裏相比其餘抓包軟件來講要簡單的多了,具體步驟以下:
(1)抓取HTTP請求
手機wifi連接設置代理爲手動,代理IP爲電腦IP(cmd ipconfig查看),端口設置爲Charles開啓的代理接口(Proxy>>Proxy Setting)。
若是勾選了Proxy - Windows Proxy 的話,那麼就會將電腦上的抓包請求也抓取到,若是隻抓手機的話,能夠將這個設置爲不勾選。
(2)抓取手機HTTPS請求,需再安裝證書
一、電腦端安裝SSL證書, help→ SSL Proxying→Install charles Root Certificate
若是沒有做用,多是證書須要設置信任:
經過菜單——運行,輸入mmc,在不受信任的證書裏面找到Charles Proxy CA,剪切粘貼到受信任根證書頒發機構下便可。
2.手機端安裝SSL證書,charles打開 help→ SSL Proxying→Install charles Root Certificate on a Mobile Device or Remote Browser(以下圖),手機端訪問標註部分chls.pro/ssl下載安裝手機https證書。
注:ios用戶須要設置證書信任。路徑爲:通用——關於本機——(下拉到最下面)證書信任設置——設置爲徹底信任 便可使用
3.打開Proxy Setting(Proxy>>SSL Proxying Setting...),勾選Enable SSL Proxying,在Location部份選擇add,按以下圖添加,抓取任意站點、443端口的數據。
到此,Charles能夠正常抓取手機端https請求。
進行接口測試,或者前端進行本地調試開發。Tools-Map Remote...打開,進行相應地址映射。
右鍵請求,選擇Breakpoints;再次發送請求過來時,會先截獲請求。
至此,可正常修改請求參數,進行調試
下面再說說charles的一些其餘經常使用的功能
Charles是一款很好用的抓包修改工具,可是若是你不是很熟悉這個工具的話,確定會遇到各類感受很莫名其妙的情況,這裏就來幫你一一解答。
由於charles是須要java環境才能運行的,須要先安裝java環境才能夠。
由於charles若是沒有註冊的話,每次打開後就只能喲個30分鐘,而後就會自動關閉,因此最好在使用前先按照說明去進行工具的註冊操做。
這個的確是charles這個工具的一個bug,開始用的時候,我也很噁心,並且常常悲劇,可是如今也有相應的解決辦法了,下面那樣操做就能夠了。
首先隨便抓些包,要求有圖片的請求。
而後選中一個圖片的請求,而後分別點擊 Response - Raw 而後那裏會加載其中的內容,而後加載完畢後,再去隨便操做就能夠了,就不會在悲劇的直接工具卡死掉了。。。
解決辦法:
第一種:直接打開charles,而後再正常關閉便可。 第二種:去將IE瀏覽器代理位置的勾選去掉。
首先,charles是不支持抓去socket數據的。 而後,若是抓不到https的數據的話,請查看你是否是沒有勾選ssl功能。 Proxy - Proxy Settings - SSL 設置
首先,請確保電腦的防火牆是關閉狀態,這個很重要。
若是,防火牆關了仍是不行,那麼請把手機wifi斷掉後從新鏈接,這樣通常就能夠解決問題了。 若是以上方法仍是不行的話,那麼請將手機wifi位置的ip地址設置成靜態ip,而後重啓charles工具。
請在Raw模式下查看,Raw模式顯示的是原始數據包,通常不會由於編碼問題致使顯示爲亂碼。
能夠,設置位置在Proxy - Windows Proxy ,勾選表示接收電腦的數據抓包,若是隻想抓去APP的數據請求,能夠不勾選此功能。
請確保360或者谷歌的代碼設置中是否是勾選設置的是 使用IE代理。
請直接使用Ctrl +C 和 Ctrl+V 便可。
以上爲參考網上博文,以及我的使用心得總結,可知足平常基本使用。