Charles使用指南
環境: Mac
Charles版本:v4.1.3
charles是Mac上很好用的抓包工具。在需要跨頁面的檢視所有請求時,Chrome的network已經不能滿足這個要求,此時使用charles再好不過了。另外還可以使用charles更改請求和返回資料、使請求打到不同的環境等。下面介紹幾個常用的技巧。
Recording settings
開啟Proxy->Recording Settings,有以下三個選項
1.options
Max Requests: 限制當前儲存的最多請求數,超過這個數字的日期較早的請求將會被自動清除掉。再也不用手動點清除按鈕了
2.Include
太多的請求眼花繚亂,看不到自己想看到的請求?那麼使用Include吧。只要你在這裡配置了請求,那麼charles將只攔截匹配的請求,還可以使用正則匹配,例如圖片中,只攔截域名以"baidu.com"結束的域名,www.baidu.com、news.baidu.com以及zhidao.baidu.com都可以攔截到,但是不想看到的例如www.taobao.com就看不到了
3.Exclude
也許你只想攔截www.baidu.com、news.baidu.com以及別的.baicu.com而不想看到zhidao.baidu.com呢?那就include \.baidu.com,配置exclude zhidao.baidu.com吧
Map Remote
開發過程中經常遇到需要把遠端請求打到本地的情況。尤其是有了node之後,這種需求愈發明顯
例如有以下情況
原始請求:news.baidu.com/tech/catego…
本地路徑:localhost:8080/pages/widget?ajax=json&id=ad
如果通用的匹配路徑可歸納為將news.baidu.com/tech/catego…) 匹配至 localhost:8080/pages/abc
那麼可以如下配置:
BreakPoints
開發過程中還經常要模擬不同情況的返回值,在百度新聞重新整理頁面時,會調這麼一個介面
下面介紹怎麼修改它的請求值和返回值,因為這個介面無關緊要,只是在真正登入時返回了使用者的使用者名稱供頁面展示,一般不會有安全的問題,所以可以直接攔截到,此處只是拿它舉一個例子:如何修改請求及返回值。
用charles攔截到這個請求後,右鍵-->BreakPoints
注:此處右鍵之後有很多的功能待發掘,例如repeat會重複傳送這個請求,或者此處有Map Remote可以直接進入介面設定要把這個路徑匹配至哪裡等等
下次再重新整理頁面時,會出現如下介面
有一個Edit Request,在這個介面可以增加或刪除引數,或者直接雙擊name或者value進行編輯,修改完引數之後,點選Execute。有返回之後,會出現如下介面
介面中有edit Response,同樣可以直接修改,修改完之後,點選Execute,請求就完成了,返回的結果可以直接供前端來使用。