Android实战——Retrofit2的使用和封装

人生难得几回搏,此时不搏待何时。这篇文章主要讲述Android实战——Retrofit2的使用和封装相关的知识,希望能为你提供帮助。
使用项目的原话:android和java中类型安全的HTTP客户端
项目地址:https://github.com/square/retrofit
这里Retrofit还需要导入它的Gson依赖库,因为返回的数据需要Gson来处理
1、Get请求
2、Post请求
3、单、多文件上传
演示提供的接口(该接口不支持post方式)
【Android实战——Retrofit2的使用和封装】get请求(支持普通请求)
get请求(支持键值对参数)
Post请求(支持键值对参数)
Post请求(支持获取返回的字符串)
Post请求(上传文件和参数)
Retrofit的请求是以REST请求方式发送请求的,所以工具的封装需要做两件事

  • 对REST请求的API进行封装
  • Retrofit自身的封装
由于我们接口返回的JSON数据如下
所以这里需要对我们需要解析的数据进行Bean对象的封装
Retrofit使用注解的方式来声明GET请求、POST请求、请求参数、请求头等进行的网络访问,下面是各个注解的表示的意思
  • Get请求相关
    • @Get:发送Get请求
    • @Query:Get请求参数
    • @QueryMap:Get请求Map参数
  • Post请求相关
    • @Post:发送Post请求
    • @FormUrlEncoded:采用表单的方式,一般与@Post共用
    • @Field:Post请求参数
    • @FieldMap:Post请求Map参数
  • Header请求相关
    • @Headers:发送Header信息
    • @Header:Header信息参数
    • @HeaderMap:Header信息的Map参数
  • Path请求相关
    • @Path:访问路径,最终访问[email  protected]里面的内容中年女装品牌
理解完意思之后,编写REST的API,其实就是请求接口,具体看下面的代码
Retrofit和okHttp一样,采用构造者模式创建,采用单例模式防止使用多个对象
上面代码做了三件事
  • 绑定请求URL
  • 采用GSON来处理返回的JSON数据
  • 创建并返回REST请求API接口iServer
下面就可以直接使用工具类拿到这个iServer,调用提供的接口方法
API接口的创建,比如说注册功能,需要上传两张身份证照片,这是我自己服务器的接口
  • @PartMap:表示参数的上传
  • @Part:表示文件列表
创建两个方法辅助PartMap和Part的创建
到这里,你就可以回过头去看下文章开头的演示部分,那里就是RetrofitUtils的使用
由于文件上传是我在做项目的时候用上的,工具类缺少文件上传的内容,大家可以自行去拷贝代码




    推荐阅读