繁体   English   中英

将 JSON 主体传递给 REST 调用 java

[英]Passing JSON Body to a REST call in java

我在执行来自 java 的后调用时遇到问题。 但是我可以从 Postman 执行相同的操作。 对于我的 rest 调用内容正文应该是这样的

{"group": "group1","users": ["Z123456","a123456","x123456"]}

为此,我创建了一个这样的 pojo:

public class GroupUserMapping {
    String group;
    ArrayList<String> users;
}

在代码中,我创建了一个方法来像这样向这个 pojo 添加对象

 ArrayList<GroupUserMapping> usergroups = new ArrayList<>();
//some conditions
 GroupUserMapping groupUserMapping = new GroupUserMapping(group,users);
  usergroups.add(groupUserMapping);

现在对于所有这些对象,我需要调用 rest API

usergroups.stream().parallel().forEach(ausergroup -> {
    try {
       CloseableHttpClient client = HttpClients.createDefault();
       HttpPost httpPost = new HttpPost(url);
       Gson gson = new Gson();
       String base64 = basicEncode();
       httpPost.addHeader("Authorization", base64);
       httpPost.setHeader("Content-type", "application/json");
       StringEntity entity = new StringEntity(gson.toJson(ausergroup.toString()));

       httpPost.setEntity(entity);
       HttpResponse response = client.execute(httpPost);
    } catch (Exception e) {
        e.printStackTrace();
    }

});

执行此操作后,我收到 400 错误代码。 请帮我解决这个问题?

谢谢你。

我将 ausergroup.toString() 更改为 ausergroup。 它对我来说工作得很好。 但是我现在有一个新问题。 当我每次将组添加为新元素时向 pojo 添加元素时,但用户列表正在为所有组更新。 理想情况下,每个组应该不同,但是在添加所有元素后,我看到所有组的用户都是相同的。 我在哪里做错了?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM