获得响应404和应用程序崩溃改造

时间:2017-10-02 02:42:58

标签: java android retrofit2

我正在尝试在我的Android应用程序中实现get和store广告相关int值的改进。我从API获得了{"banner_on":"1","int_on":"1","int_click":"3"}的响应。

我在这样的启动画面中使用代码

Retrofit retrofit = ApiClient.getClient();
            ApiService apiService = retrofit.create(ApiService.class);
            apiService.getads().enqueue(new Callback<Ads>() {
                @Override
                public void onResponse(Call<Ads> call, Response<Ads> response) {

                        constant.banner_on = response.body().banner_on();
                        constant.int_on = response.body().int_on();
                        constant.int_click = response.body().int_click();

                }

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

                 }
            });

我的广告模型如下所示

public final class Ads {
    @SerializedName("success")

    private int banner_on;
    private int int_on;
    private int int_click;

    public int banner_on() {
        return banner_on;
    }
    public int int_on() {
        return int_on;
    }
    public int int_click() {
        return int_click;
    }
}

我的ApiService就像下面的

 @GET("getads.php")
    Call<Ads>getads();

我收到如下错误

java.lang.NullPointerException: Attempt to invoke virtual method 'int com.myapp.example.model.Ads.banner_on()' on a null object reference

让我知道是否有人可以纠正我错在哪里。 感谢

1 个答案:

答案 0 :(得分:0)

如果请求不成功,response.body()将为null。

if(response.isSuccessful()) //use response.body();
else // use response.errorBody();