我已经使用现有的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)
因此可以设置host
和proxy
以及proxySet
= true。
但据同事们说,这不是我应该做的,因为它设置了全局属性,并且它不适用于系统内的许多单独运行。
有什么想法我应该这样做吗?
任何帮助表示赞赏,
谢谢
答案 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);
并返回代理列表。