今天就說一些Charles的其他操作、以及抓包跨域的問題和常見的問題如何解決。到此Charles這一系列的文章也要和大家說再見了,其他什麼小程式、Android7.0等等的問題可以檢視宏哥的Fiddler系列文章,只不過是將Fiddler換成Charles而已。
其實之前在過濾請求中,宏哥已經介紹過White List...(白名單)剛好和這個介紹的相反Block List(黑名單),顧名思義就是設定後,就會被關進小黑屋,昏天暗地不見陽光。而在Charles這裡將ip或者域名加入黑名單後,伺服器返回的響應結果被Charles攔截不返回,就會出現403或者404,具體操作步驟如下:
1.選單欄選擇 「Tools」->」Block List...」,如下圖所示:
2.設定允許啟用黑名單功能,選擇介面返回錯誤的形式(404 或者403),新增介面地址並儲存,如下圖所示:
注:【blocking action】 選項可以選擇「Drop connection」或者 「Return 403 response」.前者介面會直接返回404錯誤,後者介面返回403錯誤
3.選中需要返回404/403的介面,點選【Ok】,如下圖所示:
4.再次請求效果如下(介面返回403),如下圖所示:
5.再次請求效果如下(介面返回404),如下圖所示:
不用將其刪除(Remove)或者不勾選啟用黑名單即可。
應用場景:遮蔽web網頁的抓包資訊
proxy-->windows proxy(前面沒有對勾,就不會抓到 PC瀏覽器的包)
proxy-->macOS proxy(mac電腦)
1.解決跨域問題,1.選單欄選擇 「Tools」->」Rewrite」。如下圖所示:
2.勾選啟用重寫,新增左邊重寫。如下圖所示:
3.編輯名稱和新增需要重寫的請求,如下圖所示:
4.點選下面的新增,加Access-Control-Allow-Origin、access-control-allow-credentials(true),其他響應頭引數視情況而定
5.設定完畢以後,重寫頁面如下,點選應用,確定。設定完畢,重新發起請求,會直接響應本地資料。如下圖所示:
Charles其實是一款代理伺服器,通過成為電腦或者瀏覽器的代理,然後擷取請求和請求結果達到分析抓包的目的。該軟體是用Java寫的,能夠在Windows,Mac,Linux上使用。開發iOS都在Mac系統上吧,安裝Charles的時候要先裝好Java環境。這麼好的軟體不是免費的,官網要好幾十刀呢,我這裡有一個Mac上的**版,點選這裡下載,當然不是最新版的。如果你想體驗最新版,Charles是提供試用的。
Charles主要功能
支援SSL代理。可以擷取分析SSL的請求。
支援流量控制。可以模擬慢速網路以及等待時間(latency)較長的請求。
支援AJAX偵錯。可以自動將json或xml資料格式化,方便檢視。
支援AMF偵錯。可以將Flash Remoting 或 Flex Remoting資訊格式化,方便檢視。
支援重發網路請求,方便後端偵錯。
支援修改網路請求引數。
支援網路請求的截獲並動態修改。
檢查HTML,CSS和RSS內容是否符合W3C標準。
Charles系列的使用教學到這裡也要和大家說再見了,感謝大家這段時間支援和學習以及一路的陪伴。再次感謝大家讀者朋友期待其他系列與宏哥再見。
1 . 手機無法抓包的問題
檢查是否設定好代理IP,埠號
檢查是否與電腦在同一個區域網
檢查是否關閉防火牆,代理,FQ軟體
彈出詢問點選「allow」或者「deny」時,誤點「deny」,關閉charles重啟,手機再次瀏覽則會重新彈出詢問
2 . 解決request和response資訊中的中文亂碼問題
方法一 :修改charles windows版本安裝目錄下也有一個Charles.ini的組態檔
修改後的組態檔 新增-Dfile.encoding=UTF-8即可。
通過以上方法就可以解決Request和Response的中文亂碼問題了。
3.設定代理後,瀏覽器打不開網頁
瀏覽器--設定--開啟代理設定--區域網設定--去除代理伺服器下圖選項後-確定