ApiCatcher 現已支援 Android

ApiCatcher 現已支援 Android

ApiCatcher for Android 現已上架 Google Play。至此,ApiCatcher 已覆蓋 iOS、Android、macOS、Windows 四個平台。

ApiCatcher for Android | HTTP Capture

實現原理

iOS 版基於 Network Extension 在系統底層攔截流量,App 裡一鍵啟動即可抓包,不依賴系統代理設定。Android 版沿用了相同的思路,底層實現換成了 Android 提供的 VpnService 機制。

啟動抓包後,ApiCatcher 會建立一個 VpnService,透過 TUN 虛擬網卡捕獲裝置所有 IP 封包。底層用 tun2proxy(Rust 原生函式庫)解析 TCP 封包,將 HTTP/HTTPS 連線透明轉發至本地 127.0.0.1:8888。本地基於 Netty 的 MITM 代理伺服器對 HTTP 流量直接轉發並記錄,對 HTTPS 流量透過 CONNECT 隧道 + 動態憑證簽發完成解密。整個過程應用層無感知,不需要改 Wi-Fi 或行動數據的代理設定。

核心能力

Android 版與 iOS 版核心能力對齊,不只是能抓包。

抓 HTTPS 和 WebSocket(WS/WSS)流量是基礎能力,WebSocket 資料幀以聊天訊息列表的方式展示,方便查看每條訊息的收發內容。透過 Host 黑白名單可以過濾抓取不關心的請求,避免抓取到第三方 App 的流量。

介面除錯方面,重寫規則支援 Mock 回應、改寫請求/回應、正則替換請求/回應、重定向請求、丟棄請求/回應、延遲回應等重寫行為,也支援透過腳本處理複雜的邏輯。支援快速重放請求,或編輯組合重放規則將多個請求按依賴編排執行順序,支援依賴參數注入。

ApiCatcher 會在抓包過程中根據 HTTP 請求自動生成 API 文件,多次抓取同一介面會自動合併回應欄位。文件可以匯出到 Postman 或 Apifox,請求歷史也會作為用例一併匯出。除此之外,還支援匯出 HAR 請求記錄、提取圖片/影片/音訊等媒體檔案。

ApiCatcher 還支援 DNS 映射、API 掃描、Protobuf 解碼、定時重放等能力。

介面設計與 iOS 版保持一致,使用者體驗更友好。支援 JSON、XML 等程式碼高亮顯示,提供多種程式碼高亮主題可供選擇,程式碼編輯器使用相同的高亮主題。支援 JSON 搜尋、路徑摺疊、JSON 對比。除此之外,提供十六進位視圖查看二進位內容,支援渲染圖片(包括 SVG)、播放影片/音訊。

上手說明

Android 抓 HTTPS 同樣需要先安裝並信任 CA 憑證,但與 iOS 不同的是,Android 7 以上使用者只能將 CA 憑證安裝到使用者憑證區,不能安裝到系統憑證區。因此在 Android 上使用 ApiCatcher 抓 App 的 HTTPS 流量,需要在 App 專案程式碼裡設定信任使用者憑證。

CA 憑證安裝、HTTPS 抓包的限制說明、以及開發者如何抓自己 App 的設定方法,見 ApiCatcher for Android

ApiCatcher for Android 支援 Android 11(API 30)及以上系統。