как отправлять и получать данные в остальных API и модернизации - PullRequest
0 голосов
/ 26 августа 2018

мои коды:

интерфейс:

@POST("login")
@FormUrlEncoded
Call<User> UserLogin(@Field("username") String username,@Field("password") String password);

login_activity:

Call<User> call = apiInterface.UserLogin(username,password);

остальные api php:

$inputJSON = file_get_contents('php://input');
$content = json_decode( $inputJSON, TRUE );
username =$content['username'];
password =$content['password'];

Но это не работает. в чем проблема?

result : null

1 Ответ

0 голосов
/ 27 августа 2018

Как отметил @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'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...