我正在尝试为Azure事件中心启用代理,并关注此博客:https://blogs.msdn.microsoft.com/eventhubs/2018/09/21/azure-event-hubs-websockets-and-proxy-support/
我已经设置了transportType: connectionStringBuilder.setTransportType(TransportType.AMQP_WEB_SOCKETS);
我试图同时设置proxyHost和proxyPort,
System.setProperty("http.proxyHost","WrongIP"));
System.setProperty("http.proxyPort","WrongPort"));
&
java -Dhttp.proxyHost=ipAddress -Dhttp.proxyPort=8080
在这两种情况下,如果我的代码中的IP或端口错误,eventHub客户端将超过上述配置,并能够通过Internet进行通信。
我的问题是:
使用以下代码时:
ProxySelector.setDefault(new ProxySelector() {
@Override
public List<Proxy> select(URI uri) {
LinkedList<Proxy> proxies = new LinkedList<>();
proxies.add(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyIpAddressStr, proxyPort)));
return proxies;
}
@Override
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
// trace and follow up on why proxy server is down
}
});
当我指定了错误的IP或端口时,我能够阻止。