2017-02-15 22 views
0
@GET("images") 
Call<Example> getimages(@Query("where=item_id") int item_id); 

Когда я использую это равное подписать после того, как, где получает закодировать% 3D, который делает мой сервер не accept.I хочет = символа после где в моем апи вызове.URL ошибка кодирования в Модернизированном 2.0

И моя ссылка изображения, где = item_id = 1

+0

Какая у вас ссылка? Является ли ссылка 'images? Where = item_id'? –

+0

Нет похожих изображений? Where = item_id = 1 –

+0

Это довольно странно. вы можете попробовать использовать параметр Path '@GET (« images? where = item_id = {id} ») Вызвать getimages (@Path (« id ») int id);' –

ответ

1

Попробуйте так:

@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

+0

Извините, но у меня есть предложение where between. –

+0

@Hitesh Можете ли вы опубликовать URL-адрес, что вы хотите назвать? Упомяните об этом в вопросе. –

+0

** вам нужно использовать косую черту '/ {path}' **. Я использую модификацию без '/', но она все еще в порядке. –

0

Добавить закодированный флаг.

@GET("images") 
Call<Example> getimages(@Query("where=item_id", encoded = true) String item_id); 

и кодировать item_id перед тем, как передать его этому методу.