How to set timeouts for each request using Spring REST template?

I have an application that uses several clients to relax. Each of these REST clients uses the same Spring REST bean template. I was wondering if it is possible to set a timeout value for each request using the Spring holiday pattern?

+5
source share
3 answers

It worked for me ...

RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());

private ClientHttpRequestFactory getClientHttpRequestFactory() {
    int timeout = 5000;
    HttpComponentsClientHttpRequestFactory clientHttpRequestFactory
      = new HttpComponentsClientHttpRequestFactory();
    clientHttpRequestFactory.setConnectTimeout(timeout);
    return clientHttpRequestFactory;
}
+2
source

You can also change SimpleClientHttpRequestFactory.

    RestTemplate restTemplate = new RestTemplate();
    restTemplate.setRequestFactory(customHttpRequestFactory());

    private SimpleClientHttpRequestFactory customHttpRequestFactory() {
        SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
        simpleClientHttpRequestFactory.setReadTimeout(2000);
        simpleClientHttpRequestFactory.setConnectTimeout(2000);
        return simpleClientHttpRequestFactory;
    }
0
source

-, , @Bean, RestTemplateConfig.

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate(clientHttpRequestFactory());
    }

    private ClientHttpRequestFactory clientHttpRequestFactory() {
        HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
        clientHttpRequestFactory.setConnectionRequestTimeout(4000);
        clientHttpRequestFactory.setReadTimeout(4000);
        clientHttpRequestFactory.setConnectTimeout(4000);
        return clientHttpRequestFactory;
    }
}

But I suggest you use Apache HttpClient, you can manage the connection pool, keep it active, monitor the idle state, and also create your own error handler. You can check the link: https://springframework.guru/using-resttemplate-with-apaches-httpclient/

0
source

Source: https://habr.com/ru/post/1673065/


All Articles