407无法通过代理隧道

时间:2010-11-13 06:48:18

标签: java http-status-code-407

我们有一个调用第三方Web服务的Web服务。为了测试这个实现,我们有不同的环境。

  • 本地开发人员计算机:当我们运行应用程序时,一切正常,我们的网络服务就可以点击第三方网址。 (本地计算机使用Windows操作系统)

  • 本地开发服务器:在开发服务器上部署应用程序后,我们无法访问第三方URL并收到Http Proxy 407错误。 (我们正在使用Linux,使用IBM J9 JVM。)

要解决此问题,我们尝试设置-Dhttps.proxyUser XXX -Dhttps.proxyPassword XXX,但我们继续收到错误消息。我们尝试的第二个选项是使用Authenticator.setDefault(new CustomImplAuthenticator())。但令人惊讶的是,JVM没有调用getPasswordAuthentication并继续抛出错误。

我们使用authenticator.setdefault代码在本地开发人员计算机上再次运行相同的应用程序。我们可以像前面所说的那样访问URL,但这次JVM没有再调用getPasswordAuthentication方法。在通过网络搜索后,我们发现通过NTLM解析了身份验证数据,因此我们觉得代码正在Windows上运行。

任何人都可以告诉我什么设置,我们应该在Linux框中部署应用程序,以便至少调用为Authenticator.setDefault分配的实现。

1 个答案:

答案 0 :(得分:1)

这取决于您建立http连接的方式。 例如,如果您使用Apache HTTPClient,则可以通过调用setProxyAuthenticationHandler将代理配置设置为DefaultHttpClient。

执行http调用的实现需要了解代理。