首页 > 解决方案 > 即使输入错误,Retrofit 也会返回 200 并开始下一个活动

问题描述

我正在使用改造来验证用户身份,但是当输入错误时,响应代码为 200,下一个活动开始。

public void serverLogin(){
    //                         Create handle for the RetrofitInstance interface
    apiInterface = RetrofitInstance.getRetrofitInstance().create(APIInterface.class);
    UserModel userModel = new UserModel();
    userModel.setUsername(username);
    userModel.setPassword(password);

    Call<IDModel> activate = apiInterface.userLogin(userModel);
    activate.enqueue(new Callback<IDModel>() {
        @Override
        public void onResponse(Call<IDModel> call, Response<IDModel> response) {
            if (response.isSuccessful()) {
                int statusCode = response.code();
                response.body();

                customerID = response.body().getCustomer_id();
                subID = response.body().getSub_id();
                idDB.addCustomerID(customerID, subID);

                session.setLoggedIn(true);

                Intent intent = new Intent(Login.this, Drawer.class);
                intent.putExtra("cusID", customerID);
                startActivity(intent);

                Toast.makeText(Login.this, "SUCCESS", Toast.LENGTH_SHORT).show();
                Log.d("onresponse", "" + statusCode);

            }
            else  {
                   Toast.makeText(Login.this, "Login failed", Toast.LENGTH_SHORT).show();
          }

        }


        @Override
        public void onFailure(Call<IDModel> call, Throwable t) {

            Toast.makeText(Login.this, "" + t.getMessage(), Toast.LENGTH_SHORT).show();
            Log.d("onfailure"," " +  t . getMessage());
        }
    });

}

else 部分总是被跳过。当它不成功时,我想通知用户而不是开始下一个活动。

标签: androiderror-handlingretrofit

解决方案


推荐阅读