【发布时间】:2011-12-28 13:05:30
【问题描述】:
我正在通过这种方法使用 RESTfull 网络服务:
@POST
@Consumes({"application/json"})
@Path("create/")
public void create(String str1, String str2){
System.out.println("value 1 = " + str1);
System.out.println("value 2 = " + str2);
}
在我的 Android 应用程序中,我想调用此方法。如何使用 org.apache.http.client.methods.HttpPost 为参数提供正确的值;
我注意到我可以使用注解 @HeaderParam 并简单地将标头添加到 HttpPost 对象。这是正确的方法吗?这样做:
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("str1", "a value");
httpPost.setHeader("str2", "another value");
在 httpPost 上使用 setEntity 方法不起作用。它仅使用 json 字符串设置参数 str1。像这样使用它时:
JSONObject json = new JSONObject();
json.put("str1", "a value");
json.put("str2", "another value");
HttpEntity e = new StringEntity(json.toString());
httpPost.setEntity(e);
//server output: value 1 = {"str1":"a value","str2":"another value"}
【问题讨论】:
标签: java android json web-services http-post