- Using a response type of Void (e.g., Call<Void>) will ignore and discard the response body. This can be used when there will be no response body (such as in a 201 response) or whenever the body is not needed. @Head requests are now forced to use this as their response type.
- validateEagerly() method on Retrofit.Builder will verify the correctness of all service methods on calls to create() instead of lazily validating on first use.
- Converter is now parameterized over both 'from' and 'to' types with a single convert method. Converter.Factory is now an abstract class and has factory methods for both request body and response body.
- Converter.Factory and CallAdapter.Factory now receive the method annotations when being created for a return/response type and the parameter annotations when being created for a parameter type.
- callAdapter() method on Retrofit allows querying a CallAdapter for a given type. The nextCallAdapter() method allows delegating to another CallAdapter from within a CallAdapter.Factory. This is useful for composing call adapters to incrementally build up behavior.
- requestConverter() and responseConverter() methods on Retrofit allow querying a Converter for a given type.
- onResponse method in Callback now receives the Retrofit instance. Combined with the responseConverter() method on Retrofit, this provides a way of deserializing an error body on Response. See the DeserializeErrorBody sample for an example.