Retrofit 2: @FormUrlEncoded con campos predeterminados
Necesito enviar una solicitud con el encabezado application/x-www-form-urlencoded
. La respuesta es la lista de algunos álbumes de música en formato JSON. Puede haber dos parámetros opcionales: total (valor predeterminado = 5) e iniciar (valor predeterminado = 0)
Aquí está la interfaz que utilizo para enviar esta solicitud:
- Android Location.getAccuracy () devuelve 1
- Android EXTRA_MESSAGE no reconocido dentro de Recycler View Adapter
- Firebase para Android, ¿Cómo puedo recorrer un niño (para cada niño = x hacer y)
- ¿Cuál es la diferencia entre DVM y JVM?
- NoClassDefFoundError al ejecutar el ejemplo oficial de Facebook
public interface MusicService { @Headers("Accept: Application/JSON") @FormUrlEncoded @POST("album/featured-albums") Call<List<Album>> listFeaturedAlbums(@Field("total") int total, @Field("begin") int begin); }
La pregunta es, ¿cómo puedo establecer el valor predeterminado en uno o en ambos campos, para que no tenga que enviar los parámetros en cada solicitud. Por ejemplo, quiero obtener 30 elementos en cada solicitud y sólo jugar con el campo de inicio . O tal vez quiera usar los valores predeterminados para ambos campos:
public interface MusicService { @Headers("Accept: Application/JSON") @FormUrlEncoded @POST("album/featured-albums") Call<List<Album>> listFeaturedAlbums(); }
Con esto, obtengo un error:
Java.lang.IllegalArgumentException: El método codificado en forma debe contener al menos un @Field.
- Variables en los recursos XML: pasa valores de padres a hijos
- Java Protobuf en Android - NoClassDefFoundError
- PowerManager.WakeLock en dispositivos Android
- No se puede crear el controlador dentro de hilo que no ha llamado Looper.prepare () dentro de AsyncTask para ProgressDialog
- Libgdx dibujar caracteres chinos
- Observable / Observador Android
- Android: establece sólo un relleno de textview mediante programación
- No se puede usar Runtime.exec () para ejecutar el comando shell "echo" en el código Java de Android
Por el momento no creo que puedas hacerlo de una manera no hackeada esto.
Los chicos en retrofit están trabajando en la adición de esta funcionalidad: Permitir especificar valores predeterminados @Field. # 951
Puede seguir este hilo cuando se complete. O ayudarlos y enviar un PR 🙂
- Prueba del espresso del androide: prueba vacía suite. No se encontraron pruebas
- Expandiendo / Colapsando CardView con un gesto de clic o de deslizamiento (Android)?