Вы передаете input
строку как тело в POST
вызове
String input = "{\"username\":\"testuser\",\"password\":\"testpassword\"}";
И в коде на стороне сервера вы используете @HeaderParam
для получения значений из тела, которое является неправильным, @HeaderParam
используются для получения значений заголовков
public @interface HeaderParam
Связывает значения (я) заголовка HTTP с параметром метода ресурса, классом ресурсаполе или свойство компонента класса ресурса.
Вы можете принять тело POST
в виде строки, если вы хотите получить username
и password
, вам нужно проанализировать строку в JsonObject
и получить значения
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/putOtdDebt")
public Response putOtdDebt(String body) {
System.out.println("body: " + body);
}
Или вы также можете создать POJO с этими двумя свойствами и отобразить его напрямую
public class Pojo {
private String username;
private String password;
//getters and setters
}
Код сервера
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/putOtdDebt")
public Response putOtdDebt(Pojo body) {
System.out.println("username: " + body.getUsername());
System.out.println("password: " + body.getPassword());
}