Retrofit error URL query string must not have replace block

android, get, java, retrofit

Solution

Query params have their own annotation which automatically appends to the URL.

@GET("/users?filters[0][operator]=equals")
UserDto retrieveUsersByFilters(
    @Query("filters[0][field]") String nameFilter,
    @Query("filters[0][value]") String value);

You can read more about `@Query` on its Javadoc

Problem

I have this function ``` @GET("/users?filters[0][field]={param}&filters[0][operator]=equals&filters[0][value]={value}") UserDto retrieveUsersByFilters(@Path("param") String nameFilter, @Path("value") String value); ``` I try to call it like this : ``` UserDto currentUser = interfaceUser.retrieveUsersByFilters(User.LOGIN, login); ``` But i have error : retrofit.RetrofitError: InterfaceUser.retrieveUsersByFilters: URL query string "filters[0][field]={param}&filters[0][operator]=equals&filters[0][value]={value}" must not have replace block. I already test url on firefox and it work fine. Thank's for your responses Edit Solution: ``` @GET("/users?filters[0][operator]=equals") UserDto retrieveUsersByFilters( @Query("filters[0][field]") String nameFilter, @Query("filters[0][value]") String value); ```

Original source