HttpComponentsClientHttpRequestFactory
If you are using Spring MVC's RestTemplate to make REST calls, it is important to realize that it doesn't use HTTP connection pooling of any kind, and will establish and close a connection every time you make a REST call.
If you want to use connection pooling, you would need to provide another implementation of ClientHttpRequestFactory. A good option is to use the org.springframework.http.client.HttpComponentsClientHttpRequestFactory() which is provided with Spring.
new org.springframework.web.client.RestTemplate(new HttpComponentsClientHttpRequestFactory())
Of course, if you look up the documentation for HttpComponentsClientHttpRequestFactory, you can configure a lot of the connection pooling parameters.
https://coderwall.com/p/dcohra/connection-pooling-with-spring-resttemplate
http://stackoverflow.com/questions/25698072/simpleclienthttprequestfactory-vs-httpcomponentsclienthttprequestfactory-for-htt
org.springframework.http.client.SimpleClientHttpRequestFactory
java.net.Proxy
java.net.Proxy.Type
java.net.InetSocketAddress
org.springframework.web.client.RestTemplate
@Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); Proxy proxy= new Proxy(Type.HTTP, new InetSocketAddress("my.host.com", 8080)); requestFactory.setProxy(proxy); return new RestTemplate(requestFactory); }
put these lines before calling your get or post method. so proxy get set .
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); DefaultHttpClient httpClient = (DefaultHttpClient) requestFactory.getHttpClient(); HttpHost proxy = new HttpHost("proxtserver", port); httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy); restTemplate.setRequestFactory(requestFactory);
http://stackoverflow.com/questions/3687670/using-resttemplate-how-to-send-the-request-to-a-proxy-first-so-i-can-use-my-jun