1. If single proxy for all targets is enough for you:

    HttpComponentsClientHttpRequestFactory clientHttpRequestFactory 
        = new HttpComponentsClientHttpRequestFactory(
            HttpClientBuilder.create()
                    .setProxy(new HttpHost("myproxy.com", 80, "http"))
                    .build());
    restTemplate = new RestTemplate(clientHttpRequestFactory);
  2. Or if you want to use different proxies for different target URIs, schemas, etc. you can useHttpRoutePlanner with custom ProxySelector:

    HttpRoutePlanner routePlanner = new SystemDefaultRoutePlanner(new MyProxySelector());
    
    HttpComponentsClientHttpRequestFactory clientHttpRequestFactory 
        = new HttpComponentsClientHttpRequestFactory(
            HttpClientBuilder.create()
                .setRoutePlanner(routePlanner)
                .build());
    restTemplate = new RestTemplate(clientHttpRequestFactory);
  3. Example proxy selector: MyProxySelector.java:
  4. package hello;
    
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.net.Proxy;
    import java.net.Proxy.Type;
    import java.net.ProxySelector;
    import java.net.SocketAddress;
    import java.net.URI;
    import java.util.ArrayList;
    import java.util.List;
    
    public class MyProxySelector extends ProxySelector {
    
        ProxySelector defaultproxySelector = ProxySelector.getDefault();
    
        ArrayList<Proxy> noProxy = new ArrayList<Proxy>();
        ArrayList<Proxy> secureProxy = new ArrayList<Proxy>();
        ArrayList<Proxy> sociaMediaProxy = new ArrayList<Proxy>();
    
        public MyProxySelector(){
    
            noProxy.add(Proxy.NO_PROXY);
    
            secureProxy.add(new Proxy(Type.HTTP, new InetSocketAddress(
                "secure.proxy.mycompany.com", 8080)));
    
            sociaMediaProxy.add(new Proxy(Type.HTTP, new InetSocketAddress(
                    "social-media.proxy.mycompany.com", 8080)));
        }
    
        @Override
        public List<Proxy> select(URI uri) {
    
            // No proxy for local company addresses.
            if ( uri.getHost().toLowerCase().endsWith("mycompany.com") ) {
                return noProxy ;
            }
    
            // Special proxy for social networks.
            String

相关文章:

  • 2022-12-23
  • 2022-03-09
  • 2021-11-08
  • 2021-07-31
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
  • 2021-06-11
  • 2021-10-15
相关资源
相似解决方案