2013-02-28 3 views
1

Я новичок в веб-сервисах и написание кода для вызова веб-сервиса Jersey на Android. Но я получаю null как значения параметра PathParam. Пожалуйста, помогите мне в том, что случилось с моим кодом.Значение PathParam null в веб-службе Джерси

Вот код для обслуживания вызова веб в 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

Я не уверен, об использовании StringEntity , но на код сервера, если вы используете параметры Path, параметры должны быть объявлены в шаблоне до их использования. например

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

и URL, полученные на сервере должен быть

protocol://server/context/dbconnect/[email protected]/password 

Хотя это очень плохая идея, чтобы передать пароль через URL, но функционально, он будет работать.

+0

Но я не передаю значение по пути URL-адреса, я передаю значение в запросе тела. Поэтому я не могу сделать это как @Path ("/ dbconnect/{email_id}/{password}") – aaaaa

+0

ответить mitratul, это правильно. Для получения тела и сохранения вашего фактического пути измените подпись своего метода, чтобы получить содержимое JSON: 'public String connectToDbTest (String content) {...}' (отбросить @ PathParam, потому что они используются неправильно). Из строки содержимого вы можете вручную извлечь переменные или использовать фреймворк вроде JAXB, который автоматически преобразует строку JSON в объект модели. – Florin

Смежные вопросы