Intereting Posts
Как правильно проверить целостность токена Google? Как программно «перезапустить» приложение для Android? Facebook SDK для дублированной библиотеки поддержки Android на зависимостях Android Studio: Зависимости моментальных снимков не обновляются должным образом Запуск определенного действия при сканировании тега NFC Не удается переустановить аварийное управление Sony SmartWatch Проблема размещения в макете – относительная ширина в процентах с использованием веса Как открыть браузер файлов в Android? Android VM сбой при запуске Mac Можно ли «принудительно остановить» приложение, которое я отлаживаю, используя adb в терминале? IntelliJ IDEA 12 дубликат класса R.java и BuildConfig.java Относительная компоновка. Между двумя пунктами Приблизительное расстояние до ближайшей мобильной мачты Как применить анимацию fade-in / fade-out при замене фрагмента Как получить Cell в настоящее время используется частота GSM / CDMA (Android)

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: Form-encoded метод должен содержать по крайней мере один @Field.

Solutions Collecting From Web of "Retrofit 2: @FormUrlEncoded с полями по умолчанию"

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

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

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