访问两个Web服务HTTPS和其他HTTP时的代理问题

时间:2013-02-26 14:05:12

标签: java web-services http https proxy

我有一个使用两个网络服务的网络应用

•第一个Web服务通过HHTPS连接到外部websserver

(https://abc.com/int/obj)

•第二个Web服务通过HHTP连接到内部网站服务器

`(http://10.14.250.69:7250/uiu/ohg)

如果我使用

System.setProperty("https.proxyHost", "xxx.xxx.xx.xxx"); //proxy server
 System.setProperty("https.proxyPort", "3128");           //proxy port

然后我的应用程序能够成功连接外部网站并获取数据,但是当它调用第二个Web服务时,请求被路由到代理服务器,这不应该发生

我想要的是当它连接到这个内部Web服务时,它应该直接调用它,而不是通过代理。我怎样才能实现这一点。当代理服务器调用内部Web服务时,我可以绕过它吗

2 个答案:

答案 0 :(得分:1)

很高兴知道您正在使用Axis WS客户端。因此,您是否可以在单个WS客户端存根级别设置代理设置,而不是使用适用于这两种Web服务的系统属性?这是示例代码

MyServiceStub myService = new MyServiceStub("https://www.foo.com/abc/xyz.asmx");

HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.ProxyProperties();
proxyProperties.setDomain("mydomain");
proxyProperties.setProxyName("xx.xxx.xx.xxx");
proxyProperties.setProxyPort(80);
proxyProperties.setUserName("myusername");
proxyProperties.setPassWord("mypassword");
myService._getServiceClient().getOptions().setProperty(HTTPConstants.PROXY, proxyProperties);

答案 1 :(得分:0)

配置http.nonProxyHosts - 要直接连接的主机或域列表,由" pipe"分隔。人物|将10.14.250.69添加到列表中。