Метод OnFailure всегда вызывается при использовании retrofit2 - PullRequest
0 голосов
/ 06 января 2020

Публикация на сервере возвращает JSON ниже

{
    "response":{
        "id":20,
        "firstname":"name",
        "lastname":"name",
        "email":"email",
        "gender":"male"
    },
    "status":"CREATED",
    "message":"Success",
    "error":null
}

Я не могу проанализировать этот результат из моего собственного приложения android, используя модификацию, метод Retrofit onFailure всегда вызвал, я уверен, что запрос поступает на сервер, потому что электронное письмо отправлено на адрес электронной почты в JSON выше.

Я звоню на сервер, используя этот метод

private void pushRegDetailsToServer(RegistrationDetails newRegistration){
    RegistrationService registrationService = ServiceBuilder.builderService(RegistrationService.class);
    Call<Registration> createRequest = registrationService.registerUser(newRegistration);

    createRequest.enqueue(new Callback<Registration>() {
        @Override
        public void onResponse(Call<Registration> call, Response<Registration> response) {
            Response obj = Objects.requireNonNull(response.body()).getResponse();


        }

        @Override
        public void onFailure(@NonNull Call<Registration> call, @NonNull Throwable t) {
            Toast.makeText(getActivity(), getResources().getString(R.string.registration_failed), Toast.LENGTH_LONG).show();
        }
    });
}

Вот мой регистрационный сервис

@POST("register")
Call<Registration> registerUser(@Body RegistrationDetails registration);

Вот мой регистрационный класс, обратите внимание, у этого класса есть соответствующие методы установки и получения

public class Registration {

    @SerializedName("response")
    private Response response;
    @SerializedName("status")
    private String status;
    @SerializedName("message")
    private String message;
    @SerializedName("error")
    private String error;

}

Это мой класс ответа

public class Response {

    @SerializedName("firstname")
    private String firstname;
    @SerializedName("lastname")
    private String lastname;
    @SerializedName("email")
    private String email;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...