Как использовать аннотацию для запроса в Retrofit 2? - PullRequest
0 голосов
/ 30 июня 2018

У меня есть класс APIService для запроса URL.

Я хочу установить для "/ products? Page = 1" аннотацию @GET, но хочу изменить параметр и значение.

это мой класс APIService:

public interface APIService {

 @GET("products?{parameter}={value}")
  Call<List<DataModelProducts>> getProducts(@Path("parameter") String  parameter,@Path("value") String value);
}

Как я могу изменить "параметр" и "значение" в моем приложении?

Ответы [ 3 ]

0 голосов
/ 30 июня 2018

Попробуйте это

public interface APIService {
 @FormUrlEncoded
 @GET("/products?page=1")
 Call<List<DataModelProducts>> getProducts(@Field("parameter") String  
 parameter,@Field("value") String value);
}
0 голосов
/ 30 июня 2018

Номер вашей страницы передается в качестве параметра запроса. Чтобы передать параметр запроса при модернизации, вам нужно передать его следующим образом:

public interface APIService {

 @GET("products")
 Call<List<DataModelProducts>> getProducts(@Query("page") String pagerNumber);
}

РЕДАКТИРОВАТЬ: использовать карту запроса:

public interface APIService {

 @GET("products")  Call<List<DataModelProducts>> getProducts(@QueryMap HashMap queryParams); }

Здесь все, что вы добавите в качестве ключа, будет соответствовать «странице», и значение будет добавлено. например, если хэш-карта имеет: queryParams.put ("что-то", "значение"); ..

ваш запрос будет как:

URL? Что-то = значение

0 голосов
/ 30 июня 2018

Я считаю, что будет достаточно использовать @Query Аннотация, как показано ниже:

@GET("group/{id}/users/list")
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);

это создаст запрос как: .../users/list?sort=desc

или, если вы хотите изменить оба вида sort / desc, как в приведенном выше примере запроса, вы можете использовать @QueryMap:

@GET("group/{id}/users/list")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);

это создаст запрос как: .../users/list?key=value где ключ / значение указаны в Map<String, String> options

для получения дополнительной информации о различных аннотациях для Retrofit2, вы можете посетить Декларации API модифицированного

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...