android - call.enqueue 不适用于同一类中的两个改造调用
问题描述
您好,我是 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);
}
有人可以帮我解决我的问题吗?
解决方案
您必须在 @POST() 行之前的界面中添加 @FormUrlEncoded 和
在 POST 方法中,我们使用@FIELD而不是@QUERY
推荐阅读
- json - JMeter - 如何在 JMeter 中执行脚本时更改 JSON 值
- c# - 从一个点读取一个字符串到另一个c#
- xpath - XPath 根据子节点选择父节点
- json - 解码生成的 json 并保存到 db - Django + Postgres
- ruby-on-rails - 删除记录违反外键约束
- javascript - 如何在 React 中更改 document.getElementById
- java - 我需要在另一个活动中复制我的数组列表
- c++ - 从第 3 方库中导出 cpp 错位函数
- python - 熊猫数据框上的两个条件查询之间的区别?
- azure - 带有延续令牌的 Azure 逻辑应用配置