1

我是网络服务的新手,我是编写代码以在 Android 中调用 Jersey 网络服务。但是我得到 null 作为 PathParam 的参数值。请帮助我了解我的代码有什么问题。

以下是Android中Web 服务调用的代码:

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);  
}  
4

1 回答 1

0

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

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

并且在服务器上收到的 URL 应该是

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

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

于 2013-02-28T10:34:07.227 回答