改造没有从API

时间:2016-06-23 08:55:23

标签: android api retrofit retrofit2

我在我的Android应用程序中使用retrofit的库来从我服务器上的数据库中的“Sync”表中检索记录(使用Loopback生成端点)。我创建了一个自定义端点,需要一个long类型的变量,它是unix格式的时间戳,例如1466598649119.问题是当我调用端点时 @GET("Syncs") Call<List<Sync>> getAllSyncsAfterThisTimeStamp(@Query(("getRecodsAfterTimestamp?timeChanged=")) long timeChanged);

   public static final Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://10.0.2.2:3000/api/")
        .addConverterFactory(GsonConverterFactory.create())
        .build();

使用此值:

Long timeStamp = 1466598625506L;
Log.e(TAG, "Job Service task is running...");
getAllSyncsCall = espcService.getAllSyncsAfterThisTimeStamp(timeStamp);
getAllSyncsCall.enqueue(EspcJobSheculerService.this);

它应该只返回时间戳之后或者等于提供的记录,而是返回所有记录(我表中的记录总数是3)

enter image description here

我知道我的终点是有效的,因为我在Loopback的API资源管理器上测试它并且它返回正确数量的记录,所以显然我在设备站点上做错了。

enter image description here

1 个答案:

答案 0 :(得分:2)

getRecodsAfterTimestamp?timeChanged="是问题所在。 getRecodsAfterTimestamp不是查询的一部分,而是您的路径的一部分。 Retrofit可以添加=?

@GET("Syncs/getRecodsAfterTimestamp")
Call<List<Sync>> getAllSyncsAfterThisTimeStamp(@Query(("timeChanged")) long timeChanged);

应该这样做