以macOS爲例,如何使用Charles監聽,攔截和修改本地的網絡通信

1 原理

首先,你必須明白Charles工作的大致原理。

  • 在本機啓動一個網絡代理(proxy),所有對外的通信都必須走這個代理。
  • Charles監聽經過這個代理的通信。
  • 通過設置相關的斷點,用戶可以攔截特定的請求或回覆。
  • 攔截之後,用戶可以編輯這些請求或回覆。

2 Steps

2.0 enable SSL in Charles (此步僅限於抓取HTTPS通信)

參見第1個回答

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讓請求繼續,或者放棄,或者取消。
在這裏插入圖片描述
以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章