介绍
是一个类型安全的 Http 客户端请求框架,本质是对 OkHttp 的封装   
依赖
app/build.gradle 中增加依赖:   
1  | // Retrofit  | 
基本概念
Retorift
负责配置请求过程中的基本参数,如:请求地址,结果转换器,自定义OKHttpClient 等,同时还会生成请求接口对象   
Converter & Converter.Factory
分别负责网络请求结果转换以及生成Converter转换器,常见的转换器有 Gson    
CallAdapter & CallAdapter.Factory
分别负责对 Retrofit.Call 实例( OkHttpCall )进行适配及生成 CallAdapter 适配器。常见适配器有: RxJava  
ServiceMethod
解析接口服务所有注解、生成请求对象 Request 、解析请求结果 Response   
注解关键字
RESTfull  API 标准接口
@GET、@POST、@PUT、@DELETE、@HEAD   
@GET:获取资源@POST:新建资源(也可以用于更新资源)@PUT:更新资源@DELETE:删除资源@HEAD:获取资源的元数据
1  | ("text")  | 
@HTTP
Retrofit 提供的自定义 Http 请求,可以替代标准注解  
1  | (method = "GET", path = "text", hasBody = false)  | 
使用流程
定义 entity,接收服务器返回数据
常见返回数据类型为 Json,这里使用 Gson 来实现数据和对象转换,如:  
1  | public class QsbkFun {  | 
定义 service 接口
通过注解描述网络请求接口,返回值是  RxJava 的数据流   
1  | public interface QsbkFunService {  | 
创建 Retrofit 实例
创建 Retrofit 实例,指定 Url、数据解析 Json 转换器、网络请求适配器 Rxjava 等等   
离线缓存,配合 okhttp实现?
1  | Retrofit retrofit = new Retrofit.Builder()  | 
创建 service 接口实例
并配置网络请求参数接口,并通过该接口获取数据QsbkFunService service = retrofit.create(QsbkFunService.class);   
常见错误
@GET("/") 不能为空,至少包含一个斜杠
java.lang.IllegalArgumentException: Missing either @GET URL or @Url parameter.