我正在使用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;) 我不确定缺少什么。有人可以帮助我
答案 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);