Не удалось извлечь ответ: не найдено подходящего HttpMessageConverter для типа ответа и типа содержимого [двоичный / октетный поток]
Итак, я использую ответ JSON с этого URL-адреса через ссылку RestTemplate:
"https://s3-ap-southeast-1.amazonaws.com/he-public-data/productdf38641.json"
Мой продукт POJO:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductModel {
private String uniq_id;
private String product_name;
private int retail_price;
private int discounted_price;
private List<String> image;
private String description;
private String product_rating;
private String overall_rating;
private String brand;
}
Теперь, когда я использую restTemplate для хранения этого массива объекта Json в ProductModel [].
ProductModel[] books = restTemplate.getForObject(URL, ProductModel[].class);
Я получаю эту ошибку
Caused by: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.schema.testing.domain.ProductModel] and content type [binary/octet-stream]
когда я передаю тот же объект JSON, хотя почтальон, в конечную точку REST через запрос POST. он может обработать этот запрос. Вся эта игра связана с типом контента. Пожалуйста, помогите, что мне делать дальше. я не уверен . Любая помощь приветствуется
1 ответ
Думаю, для этого исключения есть решение. Попробуйте и дайте мне знать результат.
Не любой конвертер сообщений может прочитать ваш HTTP-ответ, поэтому он не работает за исключением. Основная проблема здесь - это тип содержимого. Чтобы решить эту проблему , вы можете ввести собственный конвертер сообщений. и зарегистрируйте его для всех видов ответов (т.е. игнорируйте заголовок типа содержимого ответа). Именно так
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
// We are making this converter to process any kind of response, not only application/*json, which is the default behaviour
converter.setSupportedMediaTypes(Collections.singletonList(MediaType.ALL));
messageConverters.add(converter);
restTemplate.setMessageConverters(messageConverters);