Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring Boot中通过RestTemplate在Json对象中发布Json数组_Java_Json_Spring Boot_Post_Resttemplate - Fatal编程技术网

Java 在Spring Boot中通过RestTemplate在Json对象中发布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) {

我试图使用RestTemplate在json对象中发布一个数组

{
  "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;
    }