Подтвердить что ты не робот

Ошибка повторной установки URL-адреса запроса URL-адреса не должна быть заменена блоком

У меня есть эта функция

      @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);

Но у меня есть ошибка:

retrofit.RetrofitError: InterfaceUser.retrieveUsersByFilters: строка URL-запроса "фильтры [0] [поле] = {param} & фильтры [0] [operator] = равно & фильтры [0] [значение] = {значение}" не должен иметь блок замены.

Я уже тестирую url на firefox, и он отлично работает.

Спасибо за ваши отзывы

Изменить

Решение:

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

Ответ 1

Параметры запроса имеют собственную аннотацию, которая автоматически добавляется к URL-адресу.

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

Вы можете узнать больше о @Query на его Javadoc

Ответ 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, Retrofit автоматически фиксирует URL-адрес, используя @Query

Ответ 3

Не помещайте свои значения прямо в путь, но предпочитайте подпись метода. Не совсем уверен, но попробуйте что-то вроде этого:

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