查尔斯监控终端请求
Posted
技术标签:
【中文标题】查尔斯监控终端请求【英文标题】:Charles monitor terminal request 【发布时间】:2017-12-14 07:47:44 【问题描述】:有没有办法监控终端等应用程序的请求?现在我可以监控 chrome 但其他应用程序不能。
我的 charles 的版本是 4.2
【问题讨论】:
【参考方案1】:我认为这取决于您尝试监控的命令行。要纯粹捕获从终端发出的 http 请求,您只需设置环境变量“http_proxy”,例如:
$ export http_proxy="http://localhost:8888"
$ curl "http://www.google.com"
这将使 Charles 捕获对 Google 的 HTTP 请求,但这可能不会发生在从该终端启动的所有应用程序中。您可能必须找到在其他应用程序上配置代理的方法。
举个例子,如果你想从你正在开发的java应用程序捕获http请求,你需要在java命令行中添加正确的代理配置,比如: p>
$ 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(因此请考虑更改)希望这会有所帮助。
【讨论】:
以上是关于查尔斯监控终端请求的主要内容,如果未能解决你的问题,请参考以下文章