場景
開發調試時,需監控 Eclipse 運行的 Java 程式發起的 GET/POST 請求。Charles 作為 HTTP 代理/監聽工具,配合 JVM 代理參數即可實現無侵入抓包。
方案一:代碼內硬編碼代理(臨時調試)
在主方法或請求發起前添加:
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8885");
端口需與 Charles 設置一致。
方案二:Eclipse 全局 JRE 代理設置(推薦,持久生效)
- 打開 Window > Preferences > Java > Installed JREs
- 選中當前使用的 JRE,點擊 Edit
- 在 Default VM arguments 填入:
-Dhttp.proxySet="true" -Dhttp.proxyHost="127.0.0.1" -Dhttp.proxyPort="8888"
- 確認保存,後續該 JRE 運行的所有程式自動走代理。
Charles 端配置
- 菜單 Proxy > Proxy Settings
- Proxies 標籤頁,勾選 HTTP Proxy,端口設置為 8888(或與上文一致)
- 可選:SSL Proxying 勾選 Enable SSL Proxying 並添加目標域名/端口,以解密 HTTPS 請求

驗證
在 Eclipse 運行發起 HTTP 請求的程式,Charles 即可顯示完整請求/響應報文,包含 Header、Body、Cookies 等細節,極大提升調試效率。
注意事項
- 若請求為 HTTPS,需在 Charles 安裝根證書並配置 SSL Proxying,否則僅顯示 CONNECT 隧道;
- 代理端口衝突時可自行修改,雙端保持一致即可;
- 生產環境或非調試時建議關閉代理,避免影響性能。