Setting a global http(s) proxy programmatically in Java
Here is a way to set a global proxy in Java when you can not control how your third party code communicates. Put this static block somewhere in a class that is loaded by your application.
This is also available as a gist.
static {
ProxySelector.setDefault(new ProxySelector() {
private final ProxySelector def = ProxySelector.getDefault();
@Override
public List<Proxy> select(final URI uri) {
if ("http".equalsIgnoreCase(uri.getScheme()) || "socket".equalsIgnoreCase(uri.getScheme())) {
if (uri.getHost().contains("<changeme>")) {
// Using proxy for <changeme> call
return Arrays.asList(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("192.168.111.1", 8889)));
}
}
return def.select(uri);
}
@Override
public void connectFailed(final URI uri, final SocketAddress sa, final IOException ioe) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
}
Written by Christian Lizell
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Proxy
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#