получить ошибку 400 для jsonarray с помощью resttemplate - PullRequest
0 голосов
/ 08 мая 2018

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

Данные JSON:
[{"отметка времени": 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-сообщение не читается») Я не уверен, чего не хватает. кто-нибудь может мне помочь

1 Ответ

0 голосов
/ 25 мая 2018

Тело запроса, которое будет отправлено для вставленного вами фрагмента кода, будет {"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);
...