所以我得到了这段代码:
HttpClient httpClient = new DefaultHttpClient();
try {
HttpPost request = new HttpPost("url");
StringEntity params = new StringEntity("stuff");
request.addHeader("content-type", "application/json");
//request.addHeader("Accept","application/json");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
//stuff
} catch (Exception ex) {
//stuff
} finally {
httpClient.getConnectionManager().shutdown();
}
我需要创建一个POST请求,我可以使用curl -X POST / groups /:group_id / members / add等,但我不知道如何将/ groups / param添加到我的代码中。我不太熟悉如何做到这一点,所以任何建议将不胜感激。谢谢!
编辑1 :(已解决) 已经使用了建议的代码,但是如果可能的话,希望对字符串中使用的变量有一些帮助,同时保持有效的JSON格式。
编辑2: 使用该方法,您是否可以显示如何将多个用户添加到StringEntity的示例?就像user1是" User1"并有电子邮件" Email1"而user2有" User2"和" Email2"等
答案 0 :(得分:0)
使用您拥有的婴儿车创建一个url字符串,并将其作为参数传递给HttpPost()
DefaultHttpClient httpClient = new DefaultHttpClient();
String groupId = "groupId1";
String URL = "http://localhost:8080/"+groupId+"/members/add"
HttpPost postRequest = new HttpPost(
URL );
StringEntity input = new StringEntity("{\"name\":matt,\"from\":\"stackovefflow\"}");
input.setContentType("application/json");
postRequest.setEntity(input);
HttpResponse response = httpClient.execute(postRequest);
<强>已更新强>
StringEntity的输入是一个你可以以任何方式操作的字符串。
您可以定义类似
的方法private createStringEntity(String name, String email){
return new StringEntity("{\"name\":\""+name+"\",\"email\":\""+email+"\"}");
}
答案 1 :(得分:0)
“/ groups / ...”部分不是参数,而是网址的一小部分。我不认为这会起作用,因为“url”只是一个字符串,将其更改为:
HttpPost request = new HttpPost("http://stackoverflow.com/groups/[ID]/members/add");