改造调用已执行,但未触发onResponse或onFailure

时间:2016-05-03 13:29:02

标签: android retrofit2

我的呼叫已执行,但未触发onResponse或onFailure方法 返回的Json对象在

中有一个图像

这是我的交互器类中的代码

 private ExamApi initiateRetrofit() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    return retrofit.create(ExamApi.class);
}

public void getExamImage(String user, String token,String exId, String exDocId) {
    if (examApi == null) initiateRetrofit();
    Call<ResponseBody> call = examApi.getExamImage(user,token,exId,exDocId);
    call.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            listener.onImageSuccess(response.body());
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
            //TODO ONFAILURE
            //listener.onImageFailure();
           listener.onFailure();
        }
    });
}

这是我的examApi

@GET("mobile/getExamImage")
Call<ResponseBody> getExamImage(
        @Query("user") String username,
        @Query("token") String token,
        @Query("exid") String exId,
        @Query("edid") String exDocId
);

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您正在对改造进行异步调用。您甚至在网络调用发生之前尝试捕获数据。这会给你一个null结果。尝试使用广播接收器或EventBus等第三方库广播结果,这将使您的结果在网络呼叫发生后可用。