call.enqueue不适用于同一类中的两个改造调用

时间:2018-09-27 06:25:28

标签: android retrofit2

您好,我是Android新手。我试图调用并保存来自同一类的两个API,并将来自这些API的两个数据放入相同的RecyclerView中。 第一次改造工作正常,但在第二次改造电话中存在问题。 代码如下,用于第二次改装

private void callRetrofitListData(){
    pariyojanaInterfaces = ApiClient.getApiClient().create(PariyojanaInterface.class);
    Log.e("pariyojanaInterfaces", String.valueOf(pariyojanaInterfaces));
    Call<List<Data>> call = pariyojanaInterfaces.getData(memberId);
    Log.e("urll",call.request().toString())
    call.enqueue(new Callback<List<Data>>() {
        @Override
        public void onResponse(Call<List<Data>> call, Response<List<Data>> response) {

            Log.e("check","chekc");

            datas = (List<Data>) response.body();

            itemListAdapter = new ItemListAdapter(getApplicationContext(), datas);
            rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
            rv.setAdapter(itemListAdapter);
        }

        @Override
        public void onFailure(Call<List<Data>> call, Throwable t) {
            Log.e("error", t.getMessage());
        }
    });
}

在这种情况下,调试器不会进入该函数内部

call.enqueue(new Callback<List<Data>>() 

并说没有这样的实例字段:'PariyojanaInterfaces'。

PariyojanaInterface如下所示:

public interface PariyojanaInterface {
    @POST("projectBudget/pariyojanaListForMobile")
    Call<List<Data>> getData(@Query("memberId") int memberId);
}

有人可以帮我解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

您必须在@POST()行之前在接口中添加@FormUrlEncoded 和

在POST方法中,我们使用 @FIELD 而不是 @QUERY