Charles,做爲mac開發的好基友,不知道你們是否對它的使用姿式瞭如指掌。相信不少童鞋只是熟悉幾種簡單的功能,今天爲你們解鎖幾種高級姿式......但願可以幫到你們。前端
Charles是個啥,相信你們都會知道,若是真有不知道的,請百度之...
這裏我想告訴你們的是Charles能幫助咱們作什麼?
試想這樣幾種場景:後端
解決這個問題的方式有不少,經過設置代理便可,這裏只講如何利用Charles實現臨時跨域。經過Charles的重寫https請求頭和響應頭功能,爲跨域的地址添加響應頭(Access-Control-Allow-Origin)實現跨域。跨域
截取手機上的https數據包,先判斷接口數據是否正常,若正常,排除接口問題,能夠確認是手機兼容性問題。瀏覽器
線上應用在手機端表現異常,接口正常,單純從代碼層面分析不出問題的產生緣由,那怎麼快速定位、解決問題?服務器
利用Charles的資源映射功能,將遠程js資源映射到本地或者測試環境的js文件,經過打日誌(直觀的alert)來排查問題。併發
...測試
還有不少場景就不一一介紹了,只介紹上面三種頻次高的場景。網站
Charles的用途總結起來就是:代理、抓包、改包!3d
使用mac本的前端、測試、APP開發、後端開發....代理
本文只解鎖下面幾種重要姿式,可以應對上述三種場景。
菜單 -> help -> SSL Proxying -> Install Charles Root Certifiate。
mac下,找到應用程序 -> 實用程序 -> 鑰匙串訪問,打開鑰匙串後,選擇Charles Proxy CA 證書,雙擊,設置證書爲始終信任。
通過這三步猛如虎的操做,咱們就能夠抓到mac上的https請求數據包了,以下圖。
解鎖該姿式分三步走:
菜單 -> Help -> Local IP Address ,便可查看mac IP 地址。
- 菜單-> Help -> SSL Proxying -> install Charles Root Certificate on a Mobile Device or Remote Browser
- 在手機上打開瀏覽器輸入chls.pro/ssl,下載charles根證書,並安裝
- 這一步尤其重要。在IOS手機下,打開設置->通用->關於本機->證書信任設置,啓用剛纔下載的Charles證書。
這裏舉個例子,我想讓個人ifanqi.me域名下的頁面去訪問百度下面的一個接口,步驟以下:
通過這一頓猛如虎的操做,ifanqi.me下的頁面就能夠訪問百度的接口啦。有興趣的同窗能夠試下,經過修改請求頭和響應頭,咱們能夠隨意調用別的網站的接口,與此同時加深本身對http(s)協議的理解。
資源映射,簡單來講就是,將某個線上資源的請求,映射到線上另外一個資源或者映射到本地文件。好比,資源映射能夠幫助我當請求xxx.com/index.js 的時候,實際上去請求mmm.com/index.js 、或者我本機硬盤下的某個js文件。這樣有什麼好處呢?就像上面說的,能夠快速排查、解決線上問題。
在本地js加上日誌(如console或者alert),快速定位問題。
當問題被解決以後,能夠驗證問題是否解決。
咱們解鎖下這兩種姿式。
資源映射比較簡單,可是能夠幫助咱們排查、解決、驗證線上問題。
至此,幾種重要的Charles姿式就都解鎖了。除此,Charles還有不少有意思的功能,你們有時間能夠本身研究一下,都比較簡單。在這裏我簡單列一下:
這些都比較簡單,感興趣的童鞋能夠去研究下,開發新的玩法。