Как отметил @Morteza Jalambadani в своем комментарии к вашему сообщению, вы отправляете закодированные в FormUrl данные, а не JSON.Итак, вам нужно получить данные в серверном скрипте, как показано ниже:
if (isset($_POST)) {
username = $_POST['username'];
password = $_POST['password'];
// do whatever you want with the data received from client
}
Если вы действительно хотите отправлять данные JSON от клиента к серверу, вам необходимо выполнить следующие изменения.
Создатькласс модели (я создам Login
класс здесь для демонстрации)
public class Login {
private String username;
private String password;
public Login(String username, String password) {
this.username = username;
this.password = password;
}
// getter and setter methods if you want
}
В классе интерфейса API удалите @FormUrlEncoded
аннотацию и измените UserLogin()
параметры метода.
@POST("login")
Call<User> UserLogin(@Body Login data); // @Body annotation from retrofit2.http.Body package
Теперь в вашем классе Activity внесите следующие изменения.
String username = "user_name_entered_by_user";
String password = "password_entered_by_user";
Login data = new Login(username, password);
// pass data parameter to UserLogin() method
Call<User> call = apiInterface.UserLogin(data);
И серверный скрипт такой же, как вы разместили в своем вопросе.
$inputJSON = file_get_contents('php://input');
$content = json_decode( $inputJSON, TRUE );
username =$content['username'];
password =$content['password'];