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请求相关
- @Path:访问路径,最终访问[email protected]里面的内容中年女装品牌
理解完意思之后,编写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字符串到服务器