带有代理(和身份验证)的groovy httpBuilder

带有代理(和身份验证)的groovy httpBuilder,groovy,proxy,httpbuilder,Groovy,Proxy,Httpbuilder,我正在尝试使用httpBuilder通过代理连接到Web服务,但不知何故无法做到这一点。 我在这里发现了一个可能有助于解决我的问题(至少是部分问题)的问题: 但没有给出有效的答案 我基本上做的是: 创建一个新的httpBuilder传递我的URL 使用setProxy(主机、端口、“http”)方法设置代理 http.request(GET,XML){解析XML并执行操作…} 问题1:我可以将主机指定为主机名还是仅指定为IP地址?我想是的,但我想核实一下。 问题2:如果代理本身需要一些身份验证怎

我正在尝试使用httpBuilder通过代理连接到Web服务,但不知何故无法做到这一点。 我在这里发现了一个可能有助于解决我的问题(至少是部分问题)的问题: 但没有给出有效的答案

我基本上做的是: 创建一个新的httpBuilder传递我的URL 使用setProxy(主机、端口、“http”)方法设置代理 http.request(GET,XML){解析XML并执行操作…}

问题1:我可以将主机指定为主机名还是仅指定为IP地址?我想是的,但我想核实一下。 问题2:如果代理本身需要一些身份验证怎么办

我让它在我的开发机器上正常运行,它使用另一个不需要代理的网络。 当我将其部署到pre-prod测试环境时,我得到一个“连接被拒绝”异常


编辑:我正在将整个系统部署到tomcat 6.39服务器上

很高兴我发现了这个问题并自己解决了。感觉在这里分享也是个好主意

关键是,在之前设置代理的尝试中,我编辑了用于tomcat启动设置JAVA_OPTS的setenv.sh脚本以使用代理(-Dhttp.proxyHost、proxyPort等)。这没有帮助,因此我转而使用httpBuilder在代码运行时动态设置代理(依赖外部属性文件来存储配置。只是为了避免在源代码中硬编码它们)

显然,这两件事一起打乱了最终的代理配置!我删除了-Dhttp.proxyHost和其他相关的JAVA_选项,它开始使用httpBuilder开箱即用


经验教训(艰难的道路):不要期望运行在tomcat中的webapp从系统或环境变量获取代理设置。最好在运行时在代码中设置它(仅用于需要代理的调用),并将代理主机和端口外部化为常规属性文件,这样您就不必每次代理更改url或端口时都重新编译源。指定部署服务器类型和版本的问题