gpt4 book ai didi

grails - HTTPBuilder 忽略 JVM 代理参数

转载 作者:行者123 更新时间:2023-12-02 05:18:16 26 4
gpt4 key购买 nike

我需要通过代理才能到达我的目标服务器。看来我可以用这样的代码来做到这一点:

def http = new HTTPBuilder( 'http://www.somesite.com')
http.setProxy('proxy.com', 8080, 'http')

但不是这样:
System.setProperty("http.proxyHost", "proxy.com");
System.setProperty("http.proxyPort", "8080");
def http = new HTTPBuilder( 'http://www.somesite.com')

这不应该工作吗?

真正的问题是我正在使用 HTTPBuilder从 Grails 应用程序中,并期望使用 -Dhttp.proxyHost 启动 Tomcat和 -Dhttp.proxyPort会让 HTTPBuilder通过代理...但它就像 HTTPBuilder忽略那些 JVM 参数。

它看起来像 httpclient可以配置为使用 JVM 参数,如下所示: client.getHostConfiguration().setProxy(host, port) (来自 this stackoverflow question)。这可以在 HTTPBuilder 中完成吗? (我不知道如何引用底层 httpclient )?

最佳答案

您还可以将代理参数外部化到 Config.groovy,然后通过 config 设置您的代理信息。

有关如何外部化配置的一些示例:

http://phatness.com/2010/03/how-to-externalize-your-grails-configuration/
http://www.comitservices.com/wp/?p=133

然后只需从配置中获取您的代理信息

def SomeService {
def grailsApplication

..
def http = new HTTPBuilder( 'http://www.somesite.com')
http.setProxy(
grailsApplication.config.proxyHost,
grailsApplication.config.proxyPort,
grailsApplication.config.proxyScheme
)
}

关于grails - HTTPBuilder 忽略 JVM 代理参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17336614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com