【问题标题】:groovy grape grab not using proxy settingsgroovy 葡萄抓取不使用代理设置
【发布时间】:2019-01-11 18:07:49
【问题描述】:

我在防火墙后面运行 Groovy v2.4.5,并且我有一个本地 cntlm 代理。 仅供参考,当我在开放网络上使用抓取时,它可以工作。

我试过这样运行我的脚本:

groovy -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Divy.message.logger.level=3 try_grape_grab.groovy

并在 JAVA_OPTS 中设置相同的属性,但 groovy 似乎没有使用它们,我只是看到下载挂起。

export JAVA_OPTS="-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128"

如果我使用浏览器(带有代理设置),我可以访问抓取尝试下载的 pom,因此 Web 代理也不会阻止对这些文件的访问。

注意 - 我也尝试过使用葡萄命令,但没有运气。

有什么想法吗?

【问题讨论】:

  • 您的代理需要身份验证吗?
  • 实际上,公司有,因此我有一个本地 cntlm 代理,它通过该公司代理将我的本地 Linux 连接代理到 Internet,因为他们无法执行 Windows NTLM 身份验证。我可以在我的 Linux 系统上运行浏览器,它通过本地 cntlm 代理访问 Internet。
  • 您可以尝试添加相应的 https 设置,即使 groovy 文档没有提及它们? The https (http over SSL) protocol handler has its own set of propertiesdocs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html

标签: groovy groovy-grape


【解决方案1】:

我认为您需要使用 @GrabConfig 来执行此操作。在你的try_grape_grab.groovy

@Grapes([
  @Grab('some:thing:1.0'),
  @GrabConfig(systemProperties='httpProxy.host=127.0.0.1,httpProxy.port=3128')
])
...

【讨论】:

    【解决方案2】:

    andi 的评论是关键——我还需要代理 HTTPS(哦!)。一旦我将脚本的运行方式更改为:

    groovy -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3128 -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Divy.message.logger.level=3 try_grape_grab.groovy

    谢谢安迪!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多