[英]Hard coding Proxy in Java for connecting to specific URL
我有一个Web应用程序,该应用程序必须连接到外部Web服务(使用Axis客户端)。 我必须执行两件事:
当我们通过URI执行本地呼叫时,使用直接连接
http://localhost:7001/webApp/getImg?id=22
请注意,如果我们使用系统属性(http.proxyHost等)而不是ProxySelector,它就像一个超级按钮。
但是,然后所有本地电话都路由到了代理服务器上,这是我所不希望的。
因此,只有一个简单的问题-如何实现与使用代理系统属性时执行方式相同的ProxySelector
?
您还可以通过设置http.nonProxyHosts=localhost
使用系统属性来实现。 如果您想使用ProxySelector
进行操作,请尝试这样的操作
final Proxy PROXY = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("my.proxy.server", 8080));
ProxySelector.setDefault(new ProxySelector() {
public List<Proxy> select(URI u) {
if(u != null && !"localhost".equals(u.getHost())) {
return Arrays.asList(PROXY, Proxy.NO_PROXY);
}
else {
return Collections.singletonList(Proxy.NO_PROXY);
}
}
public void connectFailed(URI u, SocketAddress sa, IOException e) {
// do nothing
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.