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

Retrofit 2: @FormUrlEncoded с полями по умолчанию

Мне нужно отправить запрос с заголовком application/x-www-form-urlencoded. Ответ - список некоторых музыкальных альбомов в формате JSON. Могут быть два необязательных параметра: total (значение по умолчанию = 5) и begin (значение по умолчанию = 0)

Вот интерфейс, который я использую для отправки этого запроса:

public interface MusicService {
    @Headers("Accept: Application/JSON")
    @FormUrlEncoded
    @POST("album/featured-albums")
    Call<List<Album>> listFeaturedAlbums(@Field("total") int total, @Field("begin") int begin);
}

Вопрос в том, как я могу установить значение по умолчанию для одного или обоих этих полей, так что мне не нужно отправлять параметры в каждом запросе. Например, я хочу получить 30 элементов по каждому запросу и просто играть с полем начать. Или, возможно, я хочу использовать значения по умолчанию для обоих полей:

public interface MusicService {
    @Headers("Accept: Application/JSON")
    @FormUrlEncoded
    @POST("album/featured-albums")
    Call<List<Album>> listFeaturedAlbums();
}

При этом я получаю сообщение об ошибке:

java.lang.IllegalArgumentException: метод с кодировкой формы должен содержать по крайней мере один @Field.

4b9b3361

Ответ 1

В настоящий момент я не думаю, что вы можете сделать это не в хакерском стиле.

Ребята при обновлении работают над добавлением этой функции: Разрешить задавать значения по умолчанию @Field. # 951

Вы можете следить за этой веткой, когда она будет завершена. Или помогите им и отправьте PR:)