Retrofit 2.0 使用详解
官方教程
http://square.github.io/retrofit/
前言
在Android开发中,网络请求十分常见
而在Android网络请求库中,Retrofit是当下最热的一个网络请求库
简介
介绍
基于OKHttp的RESTful的网络请求框架的封装
作者
Square
功能
基于OkHttp
遵循RESTful API设计风格
通过注解配置网络请求参数
支持同步/异步网络请求操作
支持多种数据的解析(Json、Gson、XML等)
提供对RxJava的支持
应用场景
任何网络请求(特别是API遵循RESTful设计风格/使用RxJava进行异步操作)
原理
Retrofit其实是一个网络请求框架的封装,因为网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装。
Retrofit原理
App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作。
在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析。
注解说明
注解说明
Retrofit的使用案例
在Gradle加入Retrofit库的依赖
在AndroidManifest添加网络权限
创建接收服务器返回数据的类
服务器返回的json数据
这是金山词霸API服务器返回的json数据
创建用于描述网络请求的接口
这里是interface
不是class
,所以我们是无法直接调用该方法,我们需要用Retrofit创建一个GetTranslationInterface的代理对象。
进行Retrofit网络访问
输出结果:
输出结果
Retrofit与RxJava的结合使用
retrofit之所以作为现在最流行的网络请求库,其中一个主要原因是:支持RxJava
两种方式在使用上最大的区别在于:传统方式采用了 Callback 接口,而RxJava 方式则采用了Observable接口。主要体现在:
用于描述网络请求的接口的设置
网络请求的封装形式 & 发送形式
使用RxJava修改之前的异步网络请求代码
输出结果:
评论