Spring BootでRestTemplateのClientHttpRequestFactory実装クラスをHttpComponentsClientHttpRequestFactoryに変更する

Spring BootでRestTemplateのClientHttpRequestFactory実装クラスをHttpComponentsClientHttpRequestFactoryに変更する

RestTemplateのClientHttpRequestFactoryの実装クラスはデフォルトはorg.springframework.http.client.
SimpleClientHttpRequestFactory
です。

`org.springframework.http.client. HttpComponentsClientHttpRequestFactory`に変更する

org.springframework.http.client.HttpComponentsClientHttpRequestFactoryに変更するには、build.gradeに以下追記します。

build.gradle

compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.12'
Just a moment...

Spring2.1.9.RELEASEだとクラスパスにあるhttpclientを以下の優先順位で自動設定してくれるようです。

1.Apache HttpClinet
2.OkHttp3
3.JavaSE

明示的に設定する場合、RestTemplateBuilder#build()メソッドでRestTemplateクラスのインスタンスを生成します。requestFactoryメソッドで以下を指定します。

Javaソース

RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
HttpComponentsClientHttpRequestFactory requestFactory =
new HttpComponentsClientHttpRequestFactory();
RestTemplate restTemplate = restTemplateBuilder.requestFactory(() -> requestFactory).build();

これでrestTemplateのrequestFactoryをHttpComponentsClientHttpRequestFactoryに変更することができます。

Spring BootでRestTemplateのClientHttpRequestFactory実装クラスをHttpComponentsClientHttpRequestFactoryに変更する

Spring Boot 1.4+でRestTemplate(HTTPクライアント)を使う

コメント

タイトルとURLをコピーしました