- New: Support for AppEngine's URL Fetch HTTP client.
- New: Multipart requests of unknown length are now supported.
- New: HTTP
Content-Type
can be overridden with a method-level or paramter header annotation. - New: Exceptions from malformed interface methods now include detailed information.
- Fix: Support empty HTTP response status reason.
- If an
ErrorHandler
is supplied it will be invoked forCallback
andObservable
methods. - HTTP
PATCH
method usingHttpUrlConnection
is no longer supported. Add the OkHttp jar to your project if you need this behavior. - Custom
Client
implementations should no longer setContent-Type
orContent-Length
headers based on theTypedInput
body of theRequest
. These headers will now be added automatically as part of the standardRequest
header list.
- Fix:
@QueryMap
,@EncodedFieldMap
, and@FieldMap
now correctly detectMap
-based parameter types.
- New:
@Query
and@EncodedQuery
now acceptList
or arrays for multiple values. - New:
@QueryMap
and@EncodedQueryMap
accept aMap
of key/value pairs for query parameters. - New:
@Field
now acceptsList
or arrays for multiple values. - New:
@FieldMap
accepts aMap
of name/value pairs for form URL-encoded request bodies. - New:
Endpoint
replacesServer
as the representation of the remote API root. TheEndpoints
utility class contains factories methods for creating instances.Server
andChangeableServer
are now deprecated. SimpleXmlConverter
andJacksonConverter
now have a default constructor.Response
now includes the URL.- Fix: Hide references to optional classes to prevent over-eager class verifiers from complaining (e.g., Dalvik).
- Fix: Properly detect and reject interfaces which extend from other interfaces.
- New: Converter module for SimpleXML.
- New: Mock module which allows simulating real network behavior for local service interface implementations. See 'mock-github-client' example for a demo.
- New: RxJava
Observable
support! Declare a return type ofObservable<Foo>
on your service interfaces to automatically get an observable for that request. (Experimental API) - Fix: Use
ObjectMapper
's type factory when deserializing (Jackson converter). - Multipart POST requests now stream their individual part bodies.
- Log chunking to 4000 characters now only happens on the Android platform.
- Fix: Respect connection and read timeouts on supplied
OkHttpClient
instances. - Fix: Ensure connection is closed on non-200 responses.
- New: Converter for Wire protocol buffers!
- New: Additional first-party converters for Jackson and Protocol Buffers! These are provided
as separate modules that you can include and pass to
RestAdapter.Builder
'ssetConverter
. - New:
@EncodedPath
and@EncodedQuery
annotations allow provided path and query params that are already URL-encoded. - New:
@PATCH
HTTP method annotation. - Fix: Properly support custom HTTP method annotations in
UrlConnectionClient
. - Fix: Apply
RequestInterceptor
during method invocation rather than at request execution time. - Change
setDebug
tosetLogLevel
onRestAdapter
andRestAdapter.Builder
and provide two levels of logging viaLogLevel
. - Query parameters can now be added in a request interceptor.
- Fix: Ensure
@Headers
-defined headers are correctly added to requests. - Fix: Supply reasonable connection and read timeouts for default clients.
- Fix: Allow passing
null
for a@Part
-annotated argument to remove it from the multipart request body.
- Introduce
RequestInterceptor
to replaceRequestHeaders
. An interceptor provided to theRestAdapter.Builder
will be called for every request and allow setting both headers and additional path parameter replacements. - Add
ErrorHandler
for customizing the exceptions which are thrown when synchronous methods return non-200 error codes. - Properly parse responses which erroneously omit the "Content-Type" header.
- Allow uppercase letters in path replacement identifiers.
- Fix: Static query parameters in the URL are now correctly appended with a separating '?'.
- Fix: Explicitly allow or forbid
null
as a value for method parameters.@Path
- Forbidden@Query
- Allowed@Field
- Allowed@Part
- Forbidden@Body
- Forbidden@Header
- Allowed
- Fix: Correct bad regex behavior on Android.
Initial release.