Depuis Spring Framework 4.3.5, la méthode patchForObject
(méthode de communication HTTP utilisant la méthode PATCH) a été ajoutée au RestTemplate
, mais si vous utilisez le RestTemplate
dans l'état par défaut, une erreur se produira pendant le traitement de la communication. Je vais: sweat_smile:
En effet, la classe utilisée dans l'état par défaut est l'API standard JDK java.net.HttpURLConnection
. Comme certains d'entre vous le savent peut-être, HttpURLConnection
ne prend pas en charge la méthode PATCH ...
Utilisez une bibliothèque OSS prenant en charge la méthode PATCH! !!
Spring Framework prend en charge les bibliothèques OSS suivantes.
Toutes les bibliothèques ci-dessus prennent en charge la méthode PATCH.
Les étapes suivantes sont requises.
ClientHttpRequestFactory
correspondant à la bibliothèque OSS dans RestTemplate
Exemple d'injection ClientHttpRequestFactory
@Bean
RestTemplate restTemplate() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
return new RestTemplate(factory);
}
Note:
Si vous souhaitez utiliser RestTemplate sur Spring Boot 1.4+, voir "Utiliser RestTemplate (client HTTP) sur Spring Boot 1.4+"! !! En générant un
RestTemplate
en utilisant leRestTemplateBuilder
ajouté dans Spring 1.4, l'étape 2 ci-dessus sera résolue automatiquement.
Spring Framework fournit les classes d'implémentation suivantes.
nom de la classe | La description |
---|---|
HttpComponentsClientHttpRequestFactory |
Classe d'implémentation Apache HttpComponents pour la communication HTTP à l'aide de HttpClient |
OkHttp3ClientHttpRequestFactory |
Classe d'implémentation pour la communication HTTP utilisant OkHttp 3 |
OkHttpClientHttpRequestFactory |
Classe d'implémentation pour la communication HTTP utilisant OkHttp 2 |
Netty4ClientHttpRequestFactory |
Classe d'implémentation pour la communication HTTP à l'aide de Netty 4 |
SimpleClientHttpRequestFactory |
JDKHttpURLConnection Classe d'implémentation pour la communication HTTP utilisant (implémentation par défaut) |
Si vous avez besoin d'accéder à l'API REST (API Web) en utilisant la méthode PATCH ... Utilisez la bibliothèque OSS pour la communication HTTP! !!
Recommended Posts