refrofit2请求与过滤器参数。 @Query而不是@Path

时间:2016-09-02 14:43:02

标签: retrofit2

我有以下请求,我需要使用Retrofit 2库进行设置。 我发现了很多变种,但没有运气。

所以我的网址是:

http://server/api/v1/items?filter=param1==111;param2==222;param3==333;&select=param1;param2;param3

我试着写下以下格式:

@GET("api/v1/items?filter=param1=={param1};param2=={param2};param3=={param3}")
Call<ItemResponse> getItems(@Path("param1") String param1, @Path("param2") String param2, @Path("param3") String param3);

但在这种情况下我有一个例外

java.lang.IllegalArgumentException: URL query string "filter=param1=={param1};param2=={param2};param3=={param3}" must not have replace block. For dynamic query parameters use @Query.
    for method IAramexApi.getItems

所以,我需要使用@Query注释,但我不知道如何在我的情况下使用它。

我看到的每个例子都包含以下查询:

  

方法?参数1 ==值1 ...

对于我的情况,我需要像

这样的东西
  

方法?滤波器参数1 = == VALUE1 ...

请帮帮我。

1 个答案:

答案 0 :(得分:0)

这是正确的方法:

 @GET("api/v1/items")
    Call<ItemResponse> getItems(@Query("param1") String param1, @Query("param2") String param2, @Query("param3") String param3);