Ab Spring Framework 4.3.5 wurde die Methode "patchForObject" (Methode für die HTTP-Kommunikation mit der PATCH-Methode) zur "RestTemplate" hinzugefügt. Wenn Sie jedoch die "RestTemplate" im Standardzustand verwenden, tritt während der Kommunikationsverarbeitung ein Fehler auf. Ich werde: Sweat_smile:
Dies liegt daran, dass die im Standardstatus verwendete Klasse die JDK-Standard-API "java.net.HttpURLConnection" ist. Wie einige von Ihnen vielleicht wissen, unterstützt HttpURLConnection
die PATCH-Methode nicht ...
Verwenden Sie eine OSS-Bibliothek, die die PATCH-Methode unterstützt! !!
Das Spring Framework unterstützt die folgenden OSS-Bibliotheken.
Alle oben genannten Bibliotheken unterstützen die PATCH-Methode.
Die folgenden Schritte sind erforderlich.
Beispiel für eine ClientHttpRequestFactory-Injektion
@Bean
RestTemplate restTemplate() {
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
return new RestTemplate(factory);
}
Note:
Wenn Sie RestTemplate für Spring Boot 1.4+ verwenden möchten, lesen Sie bitte "RestTemplate (HTTP-Client) für Spring Boot 1.4+ verwenden"! !! Durch Generieren einer "RestTemplate" mit dem in Spring 1.4 hinzugefügten "RestTemplateBuilder" wird Schritt 2 oben automatisch gelöst.
Spring Framework bietet die folgenden Implementierungsklassen.
Name der Klasse | Erläuterung |
---|---|
HttpComponentsClientHttpRequestFactory |
Apache HttpComponents Implementierungsklasse für die HTTP-Kommunikation mit HttpClient |
OkHttp3ClientHttpRequestFactory |
Implementierungsklasse für die HTTP-Kommunikation mit OkHttp 3 |
OkHttpClientHttpRequestFactory |
Implementierungsklasse für die HTTP-Kommunikation mit OkHttp 2 |
Netty4ClientHttpRequestFactory |
Implementierungsklasse für die HTTP-Kommunikation mit Netty 4 |
SimpleClientHttpRequestFactory |
JDKHttpURLConnection Implementierungsklasse für die HTTP-Kommunikation mit (Standardimplementierung) |
Wenn Sie mit der PATCH-Methode auf die REST-API (Web-API) zugreifen müssen ... Verwenden Sie die OSS-Bibliothek für die HTTP-Kommunikation! !!
Recommended Posts