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);
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
URL="/api-mobile_prateek2.php?method=getProductById&pid=" @GET("/api-mobile_prateek2.php?method=getProductById") Call<Product> responseproduct(@Query("pid") String pid);
dont put the pid in the @GET,, Retrofit automatically fix the url, using @Query
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With