I am using RestTemplate
to make an HTTP call to one of my service and I would like to have timeout for my HTTP Request:
public static String getResponse(final String url) {
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory());
String response = restTemplate.getForObject(url, String.class);
// return response
}
private ClientHttpRequestFactory clientHttpRequestFactory() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
factory.setReadTimeout(2000);
factory.setConnectTimeout(2000);
return factory;
}
(I came up with this after reading this.)
Is this an efficient way of using RestTemplate
along with ClientHttpRequestFactory
? Since with this for each call, it will make a new RestTemplate
object. Earlier, I was not using any timeout for RestTemplate
so I declared RestTemplate
as static final
.
private static final RestTemplate restTemplate = new RestTemplate();
public static String getResponse(final String url) {
String response = restTemplate.getForObject(url, String.class);
// return response
}
I am not sure what is the right way of using RestTemplate
along with ClientHttpRequestFactory
. Should they both be declared as static
?