我们正在使用Axis 2框架来使用我们需要通过转发代理服务器路由呼叫的外部服务。我使用下面的代码在实验室中证明它,但似乎在实际的代理服务器上(https://....。)我似乎没有办法与内部使用CommonsHttpTransportSender的Axis 2(ServiceClient)进行交互它理解传递的主机名将与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);
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 :(得分:0)
在阅读用于Web代理隧道的RFC之后,我意识到需求本身是错误的,正向代理通常会监听HTTP协议并简单地促进客户端和服务器之间的隧道,如果代理必须充当监听HTTPS,那么对于反向代理而言,更多的情况是不适用于HTTP代理,如上述最初提出的问题!
CommonsHttpTransportSender在内部使用Commons HTTP Client 3.1,它根据RFC使用HTTP代理。