设置代理以调用Web服务的方法

时间:2012-11-28 11:26:22

标签: java web-services proxy

我已经使用现有的WSDL在Java中实现了一个WS客户端 我可以连接,调用WS方法,一切都很好。
但.... 我应该使用代理进行通信!

已经尝试了许多方法,但没有任何作用:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host",Integer.parseInt("8008")));
URL url = new URL(theUrl);  

HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy); uc.connect();

或者我试过了

System.setPropertry(String, String)

因此可以设置hostproxy以及proxySet = true。

但据同事们说,这不是我应该做的,因为它设置了全局属性,并且它不适用于系统内的许多单独运行。

有什么想法我应该这样做吗?
任何帮助表示赞赏,
谢谢

1 个答案:

答案 0 :(得分:0)

最后,我使用了一个类来扩展java.net.ProxySelector,我们称之为MyProxySelector.java 在实现的select()方法中,我检查URI,如果它是通过代理连接的URI,那就是Web服务的URI,然后我创建一个代理:

SocketAddress addr = new InetSocketAddress(theHost, thePort);
proxy = new Proxy(Proxy.Type.HTTP, addr);

将其添加到我的代理列表中:

List<Proxy> proxyList = new ArrayList<Proxy>();
proxyList.add(proxy);

并返回代理列表。