在Android中的Retrofit GET请求中替换字符串

时间:2017-01-02 15:45:30

标签: android rest retrofit2

我正在尝试在我的GET网址中替换String。查询如下:

@GET("read/something/Books?$filter=(substringof('{filter}',Description)+or+substringof('{filter}',Code)+or+substringof('{filter}',Title)+or+substringof('{filter}',Barcode))")
    Call<ApiResponse<Book>> getFilteredBooks(@Path("filter") String filter);

所以我想用动态字符串替换{filter}。 我收到一个错误:

java.lang.IllegalArgumentException: URL query string "$filter=(substringof('{filter}',Description)+or+substringof('{filter}',Code)+or+substringof('{filter}',Title)+or+substringof('{filter}',Barcode))" must not have replace block. For dynamic query parameters use @Query.

我找不到任何其他合适的注释可以按预期工作。

1 个答案:

答案 0 :(得分:1)

您应该使用查询参数,例如:

@GET("read/something/Books")
    Call<ApiResponse<Book>> getFilteredBooks(@Query("$filter") String filter);

这会创建类似.../read/something/Books?$filter={parameter you sent}的网址。