文章目錄
1 原理
首先,你必須明白Charles工作的大致原理。
- 在本機啓動一個網絡代理(proxy),所有對外的通信都必須走這個代理。
- Charles監聽經過這個代理的通信。
- 通過設置相關的斷點,用戶可以攔截特定的請求或回覆。
- 攔截之後,用戶可以編輯這些請求或回覆。
2 Steps
2.0 enable SSL in Charles (此步僅限於抓取HTTPS通信)
2.1在本機設置網絡代理
通過System Preferences - Network入口,設置網絡代理。
你可以分別設置HTTP代理和HTTP代理,這兩個代理分別走HTTP通信和HTTPS通信。
2.2 Charles監聽通過代理的網絡通信
Charles頂部工具欄 - Proxy - 勾上macOS Proxy
此時,你如果刷新http://10.37.129.2:8081/MSTR/servlet/mstrWebAdmin,Charles的側邊欄上就會出現監聽到的通信。
8081是web服務器,也就是通信終點的端口。之前設置的8087是代理,也就是通信中轉的端口。兩者是無關的。
2.3 攔截特定的請求或回覆
開啓斷點: Proxy - Enable Breakpoints
設置斷點:Proxy - Breakpoint Settings…
點擊以修改斷點規則:我這裏勾選上了Request,說明我只需要攔截request。
設置example1
設置example2
此時Charles可以攔截以http://10.37.129.2:8081/MSTR/servlet/mstrWebAdmin爲目的地的通信了。
2.4 編輯(edit)返回(request)和請求(response)
再次刷新http://10.37.129.2:8081/MSTR/servlet/mstrWebAdmin
就可以看到被攔截的請求。
點擊Edit Request,就可以修改通信請求中Name和Value
修改後,可以點擊Excute讓請求繼續,或者放棄,或者取消。
以上。