Публикация на сервере возвращает 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;
}