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

Posted 张丽心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android实战——Retrofit2的使用和封装相关的知识,希望对你有一定的参考价值。

使用项目的原话:android和Java中类型安全的HTTP客户端
项目地址:https://github.com/square/retrofit

这里Retrofit还需要导入它的Gson依赖库,因为返回的数据需要Gson来处理

1、Get请求
2、Post请求
3、单、多文件上传

演示提供的接口(该接口不支持post方式)

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请求相关

理解完意思之后,编写REST的API,其实就是请求接口,具体看下面的代码

Retrofit和okHttp一样,采用构造者模式创建,采用单例模式防止使用多个对象

上面代码做了三件事

  • 绑定请求URL
  • 采用GSON来处理返回的JSON数据
  • 创建并返回REST请求API接口iServer

下面就可以直接使用工具类拿到这个iServer,调用提供的接口方法

API接口的创建,比如说注册功能,需要上传两张身份证照片,这是我自己服务器的接口

  • @PartMap:表示参数的上传
  • @Part:表示文件列表

创建两个方法辅助PartMap和Part的创建

到这里,你就可以回过头去看下文章开头的演示部分,那里就是RetrofitUtils的使用

由于文件上传是我在做项目的时候用上的,工具类缺少文件上传的内容,大家可以自行去拷贝代码




以上是关于Android实战——Retrofit2的使用和封装的主要内容,如果未能解决你的问题,请参考以下文章

Android网络实战篇——OkHttp3(Retrofit2)五种缓存模式的实现

Android实战----Android Retrofit2.1.0直接发送Json字符串到服务器

Android MVVM Demo实战解析

iterator的使用和封个问题

Android Studio - 使用 retrofit2 从 restdb 获取信息

Android 网络框架 Retrofit2.0介绍使用和封装