Android call.enqueue改造

时间:2018-10-01 03:53:13

标签: android retrofit2

我有这个代码。我的输入数据(调用过程)已成功插入数据库,但是我没有使用call.enqueue获得返回数据。它给了我“失败”的烤面包,而不是“成功”的烤面包。我正在使用改造2.1.0。这是我的进口货:

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

这是我的代码

public void performRegistration(){
    final String name = uname.getText().toString();
    final String email = mail.getText().toString();
    final String pw1 = password1.getText().toString();
    final String pw2 = password2.getText().toString();

    Call<User> call = MainActivity.apiInterface.performRegistration(name, email, pw1);

    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Call<User> call, Response<User> response) {
            MainActivity.prefConfig.displayToast("success");
        }

        @Override
        public void onFailure(Call<User> call, Throwable t) {
            MainActivity.prefConfig.displayToast("Failed");
        }
    });
}

2 个答案:

答案 0 :(得分:0)

onResponse处理来自服务器的所有响应。当您获得状态码404或500时,将调用此方法。您可以使用response.code()检查状态代码。 当您的应用程序无法连接到服务器时,调用onFailure。

答案 1 :(得分:0)

这可能由于某些原因而发生。  1)没有可用的互联网。 2)无法连接到服务器。       请使用e.printstack()发布您正确的响应错误;      谢谢。