Получение ошибки 400 для jsonarray с использованием resttemplate

Я использую resttemplate и отправляю массив json с помощью объекта, но получаю 400 (сообщение HTTP не читается). Вот мой код:

Данные json:
[{"timestamp": 1521549412000, "sysValue": 80, "meanValue": 120}]

BaseData baseData  = new BaseData();
baseData.setSysValue(80);
baseData.setMeanValue(120);
baseData.setTimeStamp(System.currentTimeMillis());

HttpEntity<BaseData> entity = new HttpEntity<BaseData>(baseData, headers);
RestTemplate restTemplate = RestTemplate.getRestTemplate();

ResponseEntity<String> response = restTemplate.exchange(baseUrl,HttpMethod.POST,entity,String.class);

Я получаю ошибку 400 ("errorType": "invalid_input", "errorMessage": "HTTP-сообщение не читается") Я не уверен, чего не хватает. может кто-нибудь мне помочь

0
0
140
1

Ответы 1

Тело запроса, которое будет отправлено для вставленного фрагмента кода, будет {"timestamp":1521549412000, "sysValue": 80, "meanValue": 120}, а не [{"timestamp":1521549412000, "sysValue": 80, "meanValue": 120}].

Вот почему вы можете получить ошибку 400.

Внесите следующее изменение, чтобы опубликовать массив json вместо объекта json.

List<BaseData> requestBody = new ArrayList<>();
requestBody.add(baseData);
HttpEntity<BaseData> entity = new HttpEntity<BaseData>(requestBody, headers);

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