Jersey Web服务中的PathParam值为null

时间:2013-02-28 10:14:54

标签: java android web-services jersey jax-rs

我是网络服务的新手,并且编写代码来调用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);  
}  

1 个答案:

答案 0 :(得分:0)

我不确定使用     StringEntity class,但在服务器代码上,如果使用Path参数,则应在使用它们之前在模板中声明参数。例如

    @Path("/dbconnect/{email_id}/{password}")

并且服务器上收到的URL应为

    protocol://server/context/dbconnect/email@id.com/password

虽然通过url传递密码是一个非常糟糕的主意,但在功能上,它会起作用。