Не удалось извлечь ответ: не найдено подходящего 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); 
Другие вопросы по тегам