RestTemplate proxy 设置方式

RestTemplate restTemplate = new RestTemplate(new SimpleClientHttpRequestFactory() {{
        setProxy(new java.net.Proxy(java.net.Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8888)));
    }});
restTemplate.exchange的参数
url,HttpMethod,
FormEntity<Body,Header>,
ResponseBodyType,
Object... ---> queryString param

更多功能强大的proxy设置:
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-http-clients.html


//简单
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setProxy(new Proxy(Type.HTTP, new InetSocketAddress(proxyHost, proxyPort)));
return new RestTemplate(factory);
static class ProxyCustomizer implements RestTemplateCustomizer {
//复杂
    @Override
    public void customize(RestTemplate restTemplate) {
        HttpHost proxy = new HttpHost("proxy.example.com");
        HttpClient httpClient = HttpClientBuilder.create()
                .setRoutePlanner(new DefaultProxyRoutePlanner(proxy) {
                    @Override
                    public HttpHost determineProxy(HttpHost target,
                            HttpRequest request, HttpContext context)
                            throws HttpException {
                        if (target.getHostName().equals("192.168.0.5")) {
                            return null;
                        }
                        return super.determineProxy(target, request, context);
                    }
                }).build();
        restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
    }

猜你喜欢

转载自www.cnblogs.com/tekikesyo/p/10404849.html