查尔斯监控终端请求

时间:2017-12-14 07:47:45

标签: charles-proxy

有没有办法监视终端等的申请的要求?现在我可以监控chrome但不监控其他应用程序。

我的查尔斯版本是4.2

1 个答案:

答案 0 :(得分:4)

我认为这取决于您尝试监控的命令行。要纯粹捕获从终端发出的http请求,您只需要设置环境变量'http_proxy',例如:

$ export http_proxy="http://localhost:8888"
$ curl "http://www.google.com"

这将使Charles捕获对Google的HTTP请求,但这可能不会发生在从此终端启动的所有应用程序中。您可能必须找到在其他应用程序上配置代理的方法。

举个例子,如果你想从正在开发的 java应用程序中捕获http请求,你需要在java命令行中添加正确的代理配置,例如:

$ JAVA_FLAGS="-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=8888"
$ java $JAVA_FLAGS ...

要使用Charles启用HTTPS嗅探,您需要将证书添加到JVM的密钥库中:

$ keytool -import -alias charles -file charles-ssl-proxying-certificate.cer -keystore $JAVA_HOME/jre/lib/security/cacerts

请注意

  • cacerts 文件位置可能因java版本而异 (在Java 10上,它位于$ JAVA_HOME / lib / security /)
  • 的密码 cacerts 文件,如果不变,则为: changeit (因此请考虑更改)

希望这有帮助。