0

我已经从我得到的现有 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)

所以可以设置hostand proxyand proxySet= true。

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

任何想法我应该如何做到这一点?
任何帮助表示赞赏,
谢谢

4

1 回答 1

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);

并返回代理列表。

于 2012-12-07T13:50:54.480 回答