使用resttemplate为jsonarray获取400错误

时间:2018-05-07 21:31:50

标签: spring 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错误,(&#34; errorType&#34;:&#34; invalid_input&#34;,&#34; errorMessage&#34;:&#34; HTTP消息不可读&#34;) 我不确定缺少什么。有人可以帮助我

1 个答案:

答案 0 :(得分:0)

将为您粘贴的代码段发送的请求正文将是 {"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);