未使用任何第三方 jar 包
首先正确配置 Charles,开启 Proxy-- macOS Proxy
对于未使用任何第三方 jar 的 Java 代码,在 http 请求前,进行以下设置:
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8888");
System.setProperty 为何对 jar 包中的 http 请求不生效
简单来说是因为此处的设置仅对当前 Java 代码生效,即只对当前代码中的 Httpclient 生效。 当使用 jar 包时,jar 内部代码发起 http 请求,默认初始化一个新的 Httpclient。
如果想让设置也对 jar 中 http 请求生效,有两种方式:
- 将 System.setProperty 作为系统环境变量
- 手动修改 jar 包中 Httpclient