Как использовать AbstractMessageConverter с RestTemplate

1. резюмируйте проблему

Я пытаюсь прочитать значения, разделенные запятыми (данные в формате CSV, а не файл csv), в responseEntity (ResponseEntity>> responseEntity) с помощью RestTemplate.

но я получаю ошибку ниже.

org.springframework.web.client.RestClientException: ошибка при извлечении ответа для типа [java.util.List>] и типа содержимого [text/csv;charset=utf-8]; вложенное исключение - org.springframework.http.converter.HttpMessageNotReadableException: ошибка синтаксического анализа JSON: невозможно десериализовать экземпляр java.util.ArrayListиз VALUE_STRING токена; вложенное исключение - com.fasterxml.jackson.databind.exc.MismatchedInputException: невозможно десериализовать экземпляр java.util.ArrayListиз VALUE_STRING токена в [Источник: (PushbackInputStream); строка: 1, столбец: 1]

2. опишите, что вы пробовали

: Я пробовал с некоторыми конвертерами сообщений.

и отсюда https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/csv-msg-converter.html У меня есть полезная информация, которую я использовал. но я продолжал получать ту же ошибку.

3.При необходимости покажите код

            Map<String, Object> requestBody = new HashMap<>();
            List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
            MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

            messageConverters.add(new ByteArrayHttpMessageConverter());
            messageConverters.add(new StringHttpMessageConverter());
            messageConverters.add(new ResourceHttpMessageConverter());
            messageConverters.add(new MappingJackson2HttpMessageConverter());
            messageConverters.add(new CsvHttpMessageConverter());
            converter.setSupportedMediaTypes(Collections.singletonList(MediaType.ALL));
            messageConverters.add(converter);

            restTemplate.setMessageConverters(messageConverters);

            // Prepare headers
            HttpHeaders headers = new HttpHeaders();
            headers.add("X-ACCESS-TOKEN", getAccessToken(_casinoAuth, _casinoAuth.getCasinoAuthId().toString()));
            headers.setContentType(MediaType.TEXT_PLAIN);

            // Ready to request.
            URI apiUrl = uriComponentsBuilder.queryParams(queryParams).build().expand(pathParams).toUri();
            HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
            ResponseEntity<List<Map<String, Object>>> responseEntity;
  • Я получаю это сообщение об ошибке отсюда.

    responseEntity = restTemplate.exchange (apiUrl, httpMethod, requestEntity, new ParameterizedTypeReference>> () {});

0 ответов

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