10
application/x-www-form-urlencoded
ヘッダーでリクエストを送信する必要があります。レスポンスは、JSON形式の音楽アルバムのリストです。が存在することができる2つのオプションのパラメータ:Retrofit 2:デフォルトフィールドの@FormUrlEncoded
public interface MusicService {
@Headers("Accept: Application/JSON")
@FormUrlEncoded
@POST("album/featured-albums")
Call<List<Album>> listFeaturedAlbums(@Field("total") int total, @Field("begin") int begin);
}
質問:総(デフォルト値= 5)と(デフォルト値= 0)ここで
が、私はこの要求を送信するために使用するインターフェイスがあるを開始私はどのようにこれらのフィールドのいずれかまたは両方にデフォルト値を設定することができます。そのため、各リクエストでパラメータを送信する必要はありません。たとえば、すべてのリクエストで30個のアイテムを取得し、ちょうど の開始フィールドで再生したいとします。それとも、私は両方のフィールドのデフォルト値を使用したい:私はあなたが非でそれを行うことができるとは思わない現時点でjava.lang.IllegalArgumentException: Form-encoded method must contain at least one @Field.
Retrofit 2は、引数としてnullを渡すことをサポートしており、そのフィールドは含まれません。したがって、最初のインターフェイスはmMusicService.listFeaturedAlbums(null、null)になります。パラメータタイプとしてintの代わりにIntegerを使用する必要があります –
私はこのオプションを知っています。これを行うためのより簡潔な方法はありませんか? –
'@ Default'を使ってみましたか? @Default( "totalDefaultValue")(@Field( "total")int total' –