Java Android Retofit获得

时间:2018-10-01 08:14:45

标签: java android retrofit

我这样做了,它不起作用

   @Headers("Accept: application/json")
    @GET("objects/last_state/?modify_after={date}")
    Call<State> getUpdate(@Header("Authorization") String token,  @Path("date") String date);

在SyncHttpClient上,我这样做了:

syncHttpClient.get(context, "https://****/objects/last_state?modify_after=" + lastModify, headers, null, handler); 

就可以了。我在这方面做错了什么?

我称为此方法:

MyApplication.retrofitInterface.getUpdate("SCToken " + singleton.getUid(), singleton.getLastModify()).enqueue(new Callback<State>() {
                @Override
                public void onResponse(Call<State> call, Response<State> response) {
                    Log.e("tak", "tak");
                }

                @Override
                public void onFailure(Call<State> call, Throwable t) {
                    Log.e("nie", "nie");

                }
            });

2 个答案:

答案 0 :(得分:3)

尝试通过get(?=)对这种类型的请求使用@Query改造

@Headers("Accept: application/json")
@GET("objects/last_state/")
Call<MovieResult> getAllMovies(@Header("Authorization") String token, @Query("modify_after") String date);

答案 1 :(得分:0)

在Retrofit中,您需要将路径的?modify_after={date}部分表示为方法的@Query("name")参数。

因此,将@Path("date")替换为@Query("modify_after"),然后放@GET("objects/last_state")