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'
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 1.4+でRestTemplate(HTTPクライアント)を使う
Invalid HTTP method: PATCH
Spring Boot3.0以降、PATCHメソッドを使用すると「Invalid HTTP method: PATCH」エラーが出ます。
build.gradleのdependenciesにhttpclient5系を追加します。
org.apache.httpcomponents.client5:httpclient5
参考サイト
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント