Ответ от модернизации - PullRequest
0 голосов
/ 18 мая 2018

Я делаю запрос GET:

public interface CheckUserInDBRequest {
@GET("api/checkUserInDB.php")
Call<ResponseBody> searchForUser(
        @Query("login") String login,
        @Query("pass") String pass
);
}

И я получаю ответ верно ||false в json, в зависимости от того, есть ли пользователь в базе данных или нет.

Retrofit.Builder builder = new Retrofit.Builder().baseUrl("https://kurusa.zhecky.net/").addConverterFactory(GsonConverterFactory.create());

Retrofit retrofit = builder.build();

CheckUserInDBRequest client = retrofit.create(CheckUserInDBRequest.class);
Call<ResponseBody> call = client.searchForUser (
        UserLogin.getText().toString(),
        UserPass.getText().toString()
);

call.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> response) {

        Toast.makeText(MainActivity.this, response.body().toString(), Toast.LENGTH_LONG).show();
    }

    @Override
    public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) {

        Toast.makeText(MainActivity.this, "no ", Toast.LENGTH_SHORT).show();
    }
});

Вот только вывод okHttp3.Я не понимаю, как получить нормальный ответ.

1 Ответ

0 голосов
/ 18 мая 2018

Сначала создайте класс, представляющий ваш JSON объект

public class UserResult {
    public boolean isSet;
}

Перестройте ваш Retrofit вызов таким образом

@GET("api/checkUserInDB.php")
Call<UserResult> searchForUser(
        @Query("login") String login,
        @Query("pass") String pass
);

Затем в вашем коде:

call.enqueue(new Callback<UserResult>() {
    @Override
    public void onResponse(@NonNull Call<UserResult> call, @NonNull Response<UserResult> response) {
        if (response.isSuccesfull()) {
            UserResult result = response.body();
            //use the value result.isSet where you need it
        } else {
            //something is broken
        }
    }

    @Override
    public void onFailure(@NonNull Call<UserResult> call, @NonNull Throwable t) {

        Toast.makeText(MainActivity.this, "no ", Toast.LENGTH_SHORT).show();
    }
});
...