<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
Ich stoße auf eine Situation, in der eine REST-API manchmal den Inhaltstyp `` application / json``` oder
`application / octet-stream``` hat, aber dennoch JSON zurückgibt. Es war. Wenn zu diesem Zeitpunkt die Zuordnung der Antwort zum Java-Objekt "application / octat-stream" lautet, tritt ein Fehler auf, wie unten gezeigt.
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class asdf.springsample.SampleController$MyResponse] and content type [application/octet-stream]
Standardmäßig wird der Federkonverter zugeordnet, wenn `application / json```. Fügen Sie also auch`
application / octat-stream``` hinzu. Referenz: [Antwort konnte nicht extrahiert werden: Es wurde kein geeigneter HttpMessageConverter für den Antworttyp gefunden](http://www.technicalkeeda.com/spring-tutorials/could-not-extract-response-no-suitable-httpmessageconverter-found-for-response] -Art)
RestTemplate r = new RestTemplate();
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM));
r.getMessageConverters().add(mappingJackson2HttpMessageConverter);
RequestEntity<String> request = RequestEntity.post(new URI("http://localhost:8080/a2")).accept(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM).body("");
ResponseEntity<MyResponse> response = r.exchange(request, MyResponse.class);
Wenn Sie laut Referenz-URL Apache HttpComponents HttpClient in den Klassenpfad einfügen und diesen verwenden, scheint die folgende Methode ebenfalls in Ordnung zu sein (ich habe dies tatsächlich nicht versucht).
ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
RestTemplate restTemplate = new RestTemplate(requestFactory);