2016-05-14 31 views
1

我们正在使用Axis 2框架来使用外部服务,因此我们需要通过转发代理服务器将呼叫路由到该服务。我使用下面的代码来证明它在实验室中,但似乎在实际的代理服务器上(这是https://....。)我似乎没有办法与Axis 2(ServiceClient)进行交互,它在内部使用CommonsHttpTransportSender与它了解被传递的主机名将与HTTPS方案一起使用。如何使Axis 2代理服务器属性知道转发代理服务器的HTTPS

用CommonHttpTransportSender有没有更简单的方法来实现这一点?

Options o = s._getServiceClient().getOptions(); 
HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.ProxyProperties(); 
proxyProperties.setProxyName(config.getForwardProxyServer()); 
proxyProperties.setProxyPort(config.getForwardProxyPort()); 
o.setProperty(HTTPConstants.PROXY, proxyProperties); 

回答

0

阅读Web代理隧道的RFC后,我意识到本身的要求是错误的,正向代理通常监听HTTP协议和简单方便的客户端和服务器之间的隧道,如果代理已采取行动因为在HTTPS上进行侦听,那么反向代理更像是一种情况,它不适用于HTTP代理,就像上面最初提到的问题一样!

CommonsHttpTransportSender内部使用按照RFC使用HTTP代理的Commons HTTP Client 3.1。