Ошибка при получении изображения из Graph API при весенней загрузке с помощью resttemplate

Я использую граф API:

GET /users/{id | userPrincipalName}/photo/$value

чтобы получить фотографию профиля конкретного пользователя с моим токеном доступа. В почтальоне я могу увидеть изображение, используя приведенный выше вызов. В моем приложении с весенней загрузкой я использую, как показано ниже:

final ResponseEntity<Object> profilePicture = restTemplate.exchange(graphUrl, HttpMethod.GET, new HttpEntity<>((header)), new ParameterizedTypeReference<>() {});

Я получаю ошибку ниже:

Could not extract response: no suitable HttpMessageConverter found for response type [class java.lang.Object] and content type [image/jpeg]

Я определил RestTemplate как:

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

Может ли кто-нибудь помочь мне с этим?

Попробуйте использовать byte[] вместо Object в ParameterizedTypeReference

talex 29.09.2022 17:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно добавить соответствующий MessageConverter к вашему RestTemplate.

Что-то вроде:

 RestTemplate restTemplate = new RestTemplate();
 restTemplate.getMessageConverters().add(new ByteArrayHttpMessageConverter());
 
 ResponseEntity<byte[]> response = restTemplate.exchange(graphUrl, 
 HttpMethod.GET, new HttpEntity<>((header)), byte[].class);

Вы можете прочитать больше на эту тему здесь: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/converter/HttpMessageConverter.html

Спасибо, я пытался с Byte[].

Aryan 29.09.2022 19:25

Другие вопросы по теме