Retrofit 2.0 注解分类详解

本文详细介绍了Retrofit 2.0的注解分类,包括请求方法类、标记类和参数类。请求方法类涵盖HTTP请求方法,如GET、POST等,标记类涉及FormUrlEncoded、Multipart和Streaming,参数类包括Headers、Header、Body等。每个注解都有具体的使用场景和示例,帮助理解如何在Retrofit中构建API请求。
摘要由CSDN通过智能技术生成

分类

Retrofit 共22个注解,根据功能大概分为三类:

  1. 请求方法类
  2. 标记类
  3. 参数类

请求方法类

序号 名称
1 GET
2 POST
3 PUT
4 DELETE
5 PATCH
6 HEAD
7 OPTIONS
8 HTTP
序号 1 ~ 7
  • 分别对应 HTTP 的请求方法;
  • 接收一个字符串表示接口 path ,与 baseUrl 组成完整的 Url;
  • 可以不指定,结合 @Url 注解使用;
  • url 中可以使用变量,如 {id} ,并使用 @Path(“id”) 注解为 {id} 提供值。
举个栗子
public interface BlogService{
   
    @GET("blog/{id}")
    Call<ResponseBody> getBlog(@Path("id") int id);
}
序号 8
  • 可用于替代以上 7 个,及其他扩展方法;
  • 有 3 个属性:method、path、hasBody、 举个栗子
public interface BlogService{
   
    /**
    * Cmethod  请求方法,不区分大小写
    * path    路径
    * hasBody 是否有请求体
    */
    @HTTP(method = "get", path = "blog/{id}", hasBody = false)
    Call<ResponseBody> getBlog(@Path("id") int id);
}

标记类

分类 名称 备注
表单请求 FormUrlEncoded 请求体是 From 表单
~~ Multipart 请求体是支持文件上传的 From 表单
标记 Streaming 响应体的数据用流的形式返回
FormUrlEncoded

登录页面使用:Content-Type:application/x-www-form-urlencoded

  • 用于修饰Field注解和FieldMap注解
  • 使用该注解,表示请求正文将使用表单网址编码。字段应该声明为参数,并用@Field注释或FieldMap注释。使用FormUrlEncoded注解的请求将具”application/ x-www-form-urlencoded”MIME类型。字段名称和值将先进行UTF-8进行编码,再根据RFC-3986进行URI编码.
Multipart

上传文件使用:Content-Type:multipart/form-data

//传单个文件
@Multipart
@POST("v1/create")
Call<ResponseBody> create(@Part("pictureName") RequestBody pictureName,  @Part MultipartBody.Part picture

RequestBody pictureNameBody = RequestBody.create(MediaType.parse(AppConstants.CONTENT_TYPE_FILE), "pictureName");
File picture= new File(path);
RequestBody requestFile = RequestBody
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值