Retrofit是通过使用注解来简化请求的,下面就来看看Retrofit请求参数中用到的所有注解
Retrofit 注解主要分为三大类
- 请求方法类
- 标记类
- 参数类
请求方法类
首先Retrofit2.1.0版本中已经内置了下面8种注解方式:GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH、HTTP
HTTP
其中说一下HTTP请求,它可以替代其他7个注解
这个注解通的比较少,主要用于自定义注解时用到,Api文档的解释如下
Use a custom HTTP verb for a request.
它有三个属性:method、path、hasBody
最近正好用到它自定义了一个DELETE请求,用于支持传递Body注解参数,方法如下
|
|
标记类
该类型的注解用于标注请求和响应的格式。
FormUrlEncoded
表示请求发送编码表单数据,每个键值对需要使用@Field注解
Multipart
表示请求发送multipart数据,需要配合使用@Part
Streaming
表示响应用字节流的形式返回.如果没使用该注解,默认会把数据全部载入到内存中.该注解在在下载大文件的特别有用
参数类
Body
用于post请求发送非表单数据,比如想要以post方式传递json格式数据,及传递一个model对象,retrofit会将其转化成json格式的对象,当然取决你addConverterFactory()采用的哪种方式了,converter有如下:Gson、Jackson、Moshi、Protobuf、Wire、Simple XML。示例代码如下:
|
|
Field
表单字段,与 FieldMap、FormUrlEncoded 配合
FieldMap
表单字段,与 Field、FormUrlEncoded 配合;接受 Map
|
|
Header
作为方法的参数传入,用于添加不固定值的Header,该注解会更新已有的请求头
|
|
Headers
用于添加固定请求头,可以同时添加多个。通过该注解添加的请求头不会相互覆盖,而是共同存在示例:
|
|
HeaderMap
与FieldMap类似
Part
表单字段,与 PartMap 配合,适合文件上传情况
PartMap
表单字段,与 Part 配合,适合文件上传情况;默认接受 Map
Path
作用于Url问号前面,占位符的作用
|
|
Query
|
|
QueryMap
|
|
Url
指定请求路径,这个特别适用于动态设置url
|
|
此请求将按照传递的url作为url请求
参考
http://square.github.io/retrofit/2.x/retrofit/
http://www.jianshu.com/p/0f97f94b171f?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io