title: Retrofit 2: @FormUrlEncoded with default fields
body: <p>I need to send a request with <code>application/x-www-form-urlencoded</code> header. The response is list of some music albums in JSON format. There can be two optional parameter: <strong>total</strong> (default value = 5) and <strong>begin</strong> (default value = 0)</p>
  
  <p>Here is the interface I use to send this request:</p>
  
  <pre><code>public interface MusicService {
      @Headers("Accept: Application/JSON")
      @FormUrlEncoded
      @POST("album/featured-albums")
      Call&lt;List&lt;Album&gt;&gt; listFeaturedAlbums(@Field("total") int total, @Field("begin") int begin);
  }
  </code></pre>
  
  <p>The question is, how can I set default value to one or both of these fields, so that I don't have to send the parameters in each request. For example I want to get 30 items on every request and just play with <strong>begin</strong> field. Or maybe I want to use the default values for both fields:</p>
  
  <pre><code>public interface MusicService {
      @Headers("Accept: Application/JSON")
      @FormUrlEncoded
      @POST("album/featured-albums")
      Call&lt;List&lt;Album&gt;&gt; listFeaturedAlbums();
  }
  </code></pre>
  
  <p>With this, I get an error:</p>
  
  <blockquote>
    <p>java.lang.IllegalArgumentException: Form-encoded method must contain at least one @Field.</p>
  </blockquote>