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));
}