Ошибка кодирования URL в Retrofit 2.0
@GET("images")
Call<Example> getimages(@Query("where=item_id") int item_id);
Когда я использую это, знак равенства после где кодирует в%3D, который мой сервер не принимает. Я хочу = символ после где в моем вызове API.
А моя ссылка на картинки? Где =item_id=1
2 ответа
Попробуйте так:
@GET("images")
Call<Example> getimages(@Query("where") String item_id);
Когда вы вызываете этот метод, вы должны пройти этот путь:
Service service = retrofit.create(Service.class);
Call<Example> call = service.getimages("item_id=1");
Если вы можете вызвать Api успешно, вы можете передать значение динамически, используя конкатенацию строк.
Причина: при передаче параметров запроса нужно просто записать параметр запроса в @Query("")
и значение ему будет присвоено во время выполнения, когда вы вызовете этот метод и передадите значение параметру "item_id" getimages
метод.
Чтобы узнать больше о модернизации, перейдите по этой ссылке: https://futurestud.io/tutorials/tag/retrofit
Добавьте закодированный флаг.
@GET("images")
Call<Example> getimages(@Query("where=item_id", encoded = true) String item_id);
и закодируйте item_id, прежде чем передать его этому методу.