使用 Charles 对 Java 项目进行抓包

未使用任何第三方 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

详细解释参考:java - 阿里云SDK使用代理的一个坑 - 个人文章 - SegmentFault 思否

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值