Customizing RestTemplateBuilder

128 views Asked by At

Customizing RestTemplateBuilder

Based on the suggestion in https://github.com/spring-projects/spring-boot/issues/35658

Can someone help me understand how the settings are passed? What is the default SslBundle in Spring boot?

ClientHttpRequestFactorySettings settings = new ClientHttpRequestFactorySettings(Duration.ofSeconds(30),
                Duration.ofSeconds(30), (SslBundle) null);

Error says Variable 'settings' is already defined in the scope

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
    return builder
        .requestFactory((settings) -> new BufferingClientHttpRequestFactory(
            ClientHttpRequestFactories.get(HttpComponentsClientHttpRequestFactory.class, settings)))
        .setConnectTimeout(Duration.ofSeconds(300))
        .setReadTimeout(Duration.ofSeconds(300))
        .build();
}

Is the below approach valid?

@Bean
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {

    return restTemplateBuilder
            .requestFactory(() -> {
                ClientHttpRequestFactorySettings settings = new ClientHttpRequestFactorySettings(Duration.ofSeconds(30),
                        Duration.ofSeconds(30), true);
                return ClientHttpRequestFactories.get(HttpComponentsClientHttpRequestFactory.class, settings);
            }).build();

}
0

There are 0 answers