RestTemplate如何发送JSONArray数组

落丶枫 2020-04-02 11:41:36
我需要使用RestTemplate调用外部系统接口,接口功能是批量注册,要在requstBody中传入json数组,然后接口返回每条数据是否注册成功。我使用RestTemplate发送json数组过去,试了JSONArray和String两种方式,返回结果都是body为空,请问如何解决?

第一种,JSONArray:

RestTemplate restTemplate = new RestTemplate();
//headers
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.add("Authorization", token);

//构造HttpEntity,requestBody为jsonArray请求体
HttpEntity<JSONArray> requestEntity = new HttpEntity<>(requestBody, requestHeaders);
//发送post请求
ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(url, requestEntity, JSONObject.class);

//请求结果
JSONObject result = responseEntity.getBody();

第二种,String:

RestTemplate restTemplate = new RestTemplate();
//headers
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.add("Authorization", token);

//构造HttpEntity,requestBody为JSONArray请求体
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody.toJSONString(), requestHeaders);
//发送post请求
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);

//请求结果
String body = responseEntity.getBody();
JSONObject result = JSONObject.parseObject(body);

返回结果:

应该返回正常的结果:
...全文
1287 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
落丶枫 2020-04-08
  • 打赏
  • 举报
回复
引用 3 楼 浪费七年时间 的回复:
问个问题,你的JSONArray用的是哪个库,fastjson、org.json还是net.sf.json(json-lib)? 然后对方接口告诉你异常信息了,接口用jackson反序列化你传入的body失败,你可以看看第二种toJSONString()生成的格式有没有问题,是不是哪个属性应该是数组却变成了字符串
用的是fastjson,我仔细检查了下参数,确实有个参数是数组类型我传成字符串类型了,感谢
浪费七年时间 2020-04-08
  • 打赏
  • 举报
回复
问个问题,你的JSONArray用的是哪个库,fastjson、org.json还是net.sf.json(json-lib)? 然后对方接口告诉你异常信息了,接口用jackson反序列化你传入的body失败,你可以看看第二种toJSONString()生成的格式有没有问题,是不是哪个属性应该是数组却变成了字符串
情谊梦幻 2020-04-08
  • 打赏
  • 举报
回复
我怎么 没看到responseBody传了数据啊
落丶枫 2020-04-07
  • 打赏
  • 举报
回复
求助,有人能帮忙回答下吗?

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧