Android OnFailure方法在使用2时始终被调用
发送到服务器会返回下面的JSONAndroid OnFailure方法在使用2时始终被调用,android,retrofit2,Android,Retrofit2,发送到服务器会返回下面的JSON { "response":{ "id":20, "firstname":"name", "lastname":"name", "email":"email", "gender":"male" }, "status":"CREATED", "message":"Success", "error":null } 我无法使用改型从我的原生andro
{
"response":{
"id":20,
"firstname":"name",
"lastname":"name",
"email":"email",
"gender":"male"
},
"status":"CREATED",
"message":"Success",
"error":null
}
我无法使用改型从我的原生android应用程序中解析此结果,改型的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();
}
});
}
这是我的反应课
public class Response {
@SerializedName("firstname")
private String firstname;
@SerializedName("lastname")
private String lastname;
@SerializedName("email")
private String email;
}
onFailure
方法中的throwable
说明了什么?使用Log.e(“error”,t)记录错误消息代码>内部onFailure()
方法,而不是显示简单的Toast。在这之后,回答问题并在这里添加堆栈跟踪。
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;
}