改造错误 URL 查询字符串不得具有替换块

2022-09-01 19:09:31

我有这个功能

      @GET("/users?filters[0][field]={param}&filters[0][operator]=equals&filters[0][value]={value}")
UserDto retrieveUsersByFilters(@Path("param") String nameFilter, @Path("value") String value);

我试着这样称呼它:

   UserDto currentUser = interfaceUser.retrieveUsersByFilters(User.LOGIN, login);

但我有错误:

改造。RetrofitError: InterfaceUser.retrieveUsersByFilters: URL 查询字符串 “filters[0][field]={param}&filters[0][operator]=equals&filters[0][value]={value}” 不得有替换块。

我已经在火狐上测试了网址,它工作正常。

感谢您的回复

编辑

溶液:

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

答案 1

查询参数有自己的注释,这些注释会自动追加到 URL。

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

您可以在其Javadoc上阅读更多相关信息@Query


答案 2
 URL="/api-mobile_prateek2.php?method=getProductById&pid="


 @GET("/api-mobile_prateek2.php?method=getProductById")
    Call<Product> responseproduct(@Query("pid") String pid);

不要把pid放在@GET,改造会自动修复网址,使用@Query