параметрические данные формы будут присутствовать только при отправке данных формы .... Измените тип @Consumes
для вашего ресурса на multipart/form-data
.
@PUT
@Path("/login")
@Produces({ "application/json", "text/plain" })
@Consumes("multipart/form-data")
public String login(@FormParam("login") String login,
@FormParam("password") String password) {
String response = null;
response = new UserManager().login(login, password);
return response;
}
Тогда на вашей стороне клиента, установите:
- Content-Type: многокомпонентные/форма-данные
- Добавить переменные формы для
login
и password
На стороне записки , предполагая, что это не для обучения, вы захотите защитить свою конечную точку входа с помощью SSL и хешировать пароль перед отправкой через провод.
EDIT
Основываясь на ваш комментарий, я в том числе пример отправки запроса клиента с необходимой формы данных:
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost(BASE_URI + "/services/users/login");
// Setup form data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("login", "blive1"));
nameValuePairs.add(new BasicNameValuePair("password",
"d30a62033c24df68bb091a958a68a169"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute request
HttpResponse response = httpclient.execute(post);
// Check response status and read data
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String data = EntityUtils.toString(response.getEntity());
}
} catch (Exception e) {
System.out.println(e);
}
Что-то вроде: 'HttpPut httpPut = new HttpPut (BASE_URI + "/services.users/login"); ' ' Форма f = новая форма(); f.add ("login", "xxxxx"); f.add ("password", "xxxxx"); '?? – user2144555
@ user2144555 - См. Изменения для жизнеспособного способа вызова ресурса сервера с использованием Apache HttpComponents. – Perception
Я тоже использовал Apache HttpClient. Но я думал, что «** переменные формы для входа и пароля **» были отправлены по-другому. Я попробую! – user2144555