我是网络服务的新手,并且编写代码来调用Android中的Jersey网络服务。但我得到null作为PathParam的参数值。 请帮助我解决我的代码有什么问题。
以下是Android中网络服务电话的代码:
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader("content-type", "application/json");
JSONObject data = new JSONObject();
try {
data.put("email_id", strEmailId);
data.put("password", strPassword);
Log.d("1", data.toString());
HttpEntity entity;
StringEntity s = new StringEntity(data.toString());
entity = s;
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
}
这是网络服务代码:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/dbconnect")
public String connectToDbTest(@PathParam("email_id") String email_id,@PathParam("password") String password) {
System.out.println(email_id+" "+password);
}
答案 0 :(得分:0)
我不确定使用 StringEntity class,但在服务器代码上,如果使用Path参数,则应在使用它们之前在模板中声明参数。例如
@Path("/dbconnect/{email_id}/{password}")
并且服务器上收到的URL应为
protocol://server/context/dbconnect/email@id.com/password
虽然通过url传递密码是一个非常糟糕的主意,但在功能上,它会起作用。