Setting timeouts in Spring Rest Template

后端 未结 3 1523
别跟我提以往
别跟我提以往 2021-01-15 03:15

Application is using Spring rest template to call a webservice and i am using
restTemplate.exchage(url) to call the webservice. Currently we are not passing any

相关标签:
3条回答
  • 2021-01-15 03:43

    You can use code similar to following for setting connection timeout:

    RestTemplate restTemplate = new RestTemplate();
    ((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setConnectTimeout(2000);
    

    If your wish to set read timeout, you can have code similar to following:

    ((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setReadTimeout(2000);
    

    The time is given in milliseconds here. For more info, you can visit the documentation page.

    0 讨论(0)
  • 2021-01-15 03:58

    RestTemplateBuilder introduced since Spring 1.4 could be used to set read and connect timeout settings for RestTemplate object. Here is sample code -

    final RestTemplate restTemplate =
        new RestTemplateBuilder()
            .setConnectTimeout(Duration.ofMillis(connectTimeoutMillis))
            .setReadTimeout(Duration.ofMillis(readTimeoutMillis))
            .build();
    
    0 讨论(0)
  • 2021-01-15 04:08

    I use this approach based on these threads

    int DEFAULT_TIMEOUT = 5000;
    RequestConfig requestConfig = RequestConfig.custom()
     .setConnectTimeout(DEFAULT_TIMEOUT)
     .setConnectionRequestTimeout(DEFAULT_TIMEOUT)
     .setSocketTimeout(DEFAULT_TIMEOUT)
     .build();
    

    CloseableHttpClient httpClient = HttpClients.custom() .setDefaultRequestConfig(requestConfig) .build();

    Spring RestTemplate Connection Timeout is not working

    Java : HttpClient 4.1.2 : ConnectionTimeout, SocketTimeout values set are not effective

    0 讨论(0)
提交回复
热议问题