翻新总是调用失败甚至响应为200

M. *_*dil 7 android retrofit2

我正在使用Retrofit来调用我的API。我对Retrofit非常陌生,这就是为什么我找不到此错误的原因。我向API发送了一个请求,200 OK但API响应却是改型调用的onFailure方法。我的API界面如下:

public interface API {

    @FormUrlEncoded
    @POST("login")
    Call<Login> login(@Query("user") String email,@Query("pass") String password, @Field("device key") String deviceKey);

}
Run Code Online (Sandbox Code Playgroud)

我的电话是:

loginCall = MyApplication.getInstance().getAPI().login(username,password,deviceKey);
        loginCall.enqueue(new Callback<Login>() {
            @Override
            public void onResponse(Call<Login> call, Response<Login> response) {

                if(response.body() != null)
                {
                    Login login = response.body();
                    Toast.makeText(LoginActivity.this, response.body().toString(), Toast.LENGTH_LONG).show();
                    }
                }

            @Override
            public void onFailure(Call<Login> call, Throwable t) {
                Toast.makeText(LoginActivity.this, "Failsssssssss", Toast.LENGTH_LONG).show();
            }
        });
Run Code Online (Sandbox Code Playgroud)

我的模型类如下:

public class Login {
    String status;
    String Auth_Token;

    public Login(String status, String auth_Token) {
        this.status = status;
        Auth_Token = auth_Token;
    }
}
Run Code Online (Sandbox Code Playgroud)

据我了解的这个问题,我的模型类存在问题。我的API返回两个响应:

"{"status":"200","Auth_Token":"jhjsfbah71yb121t312hv"}"
Run Code Online (Sandbox Code Playgroud)
"{"status":"500","Response":"Invalid Cardentials"}"
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。提前致谢。

Usa*_*ama 7

您的服务器响应出现问题。Retrofit读取HTTP状态,因此您必须确保从服务器发送了它。改造正尝试读取响应代码200,该代码可能不可用,因此正在调用故障方法。