Java 在Spring Boot中通过RestTemplate在Json对象中发布Json数组
我试图使用RestTemplate在json对象中发布一个数组Java 在Spring Boot中通过RestTemplate在Json对象中发布Json数组,java,json,spring-boot,post,resttemplate,Java,Json,Spring Boot,Post,Resttemplate,我试图使用RestTemplate在json对象中发布一个数组 { "update": { "name": "xyz", "id": "C2", "Description": "aaaaaa", "members": ["abc", "xyz"] } } 这是我的PostMapping控制器 @PostMapping(value = "/update") public Update update(@RequestBody Update update) {
{
"update": {
"name": "xyz",
"id": "C2",
"Description": "aaaaaa",
"members": ["abc", "xyz"]
}
}
这是我的PostMapping控制器
@PostMapping(value = "/update")
public Update update(@RequestBody Update update) {
String url = "";
HttpHeaders headers = createHttpHeaders("username", "passowrd");
JSONObject jsonObject = new JSONObject();
jsonObject.put("update", update);
HttpEntity<JSONObject> request = new HttpEntity<>(jsonObject, headers);
ResponseEntity<Update> update = restTemplate.exchange(url, HttpMethod.POST,request, Update.class);
return update.getBody();
}
尝试使用Json消息转换器配置RestTemplate
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
你可以参考这篇博文来获得详细的解释
然后执行rest调用,如下所示。不再需要显式创建Json对象
String url = "";
HttpEntity<Update> request = new HttpEntity<>(update, headers);
ResponseEntity<Update> firewallGroupUpdate = restTemplate.exchange(url, HttpMethod.POST, request, Update.class);
return firewallGroupUpdate.getBody();
stringurl=”“;
HttpEntity请求=新的HttpEntity(更新,标题);
ResponseEntity firewallGroupUpdate=restTemplate.exchange(url,HttpMethod.POST,request,Update.class);
返回firewallGroupUpdate.getBody();
将resttemplate.exchange更改为resttemplate.postForObject。
并将方法更改为返回字符串
public String groupUpdate(@RequestBody String groupUpdate) {
String url = "";
HttpHeaders headers = createHeaders("username","password");
headers.setContentType(MediaType.APPLICATION_JSON);
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpEntity<String> requestEntity = new HttpEntity<String>(groupUpdate, headers);
String response = restTemplate.postForObject(url,requestEntity,String.class);
return response;
}
publicstringgroupupdate(@RequestBody stringgroupupdate){
字符串url=“”;
HttpHeaders=createHeaders(“用户名”、“密码”);
headers.setContentType(MediaType.APPLICATION_JSON);
restemplate.getMessageConverters().add(新映射Jackson2HttpMessageConverter());
HttpEntity requestEntity=新的HttpEntity(组更新,标题);
String response=restTemplate.postForObject(url、requestEntity、String.class);
返回响应;
}
你能不能添加你如何构造restemplate
实例的代码?你以前看过吗:?@Bean public restemplate getrestemp(){return new restemplate();}@POOJA--你能把你评论中的信息放到问题中吗?所以在做这个改变之前,你有500个错误,而在做这个改变之后,你有400个错误?是的,现在我有400个错误
public String groupUpdate(@RequestBody String groupUpdate) {
String url = "";
HttpHeaders headers = createHeaders("username","password");
headers.setContentType(MediaType.APPLICATION_JSON);
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpEntity<String> requestEntity = new HttpEntity<String>(groupUpdate, headers);
String response = restTemplate.postForObject(url,requestEntity,String.class);
return response;
}