简单介绍
Retrofit是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordinary Java Object,简单Java对象),POJO to JSON,网络请求(POST,GET,PUT,DELETE等)封装。
软件首页http://square.github.io/retrofit/
github地址https://github.com/square/retrofit
具体使用
官方文档非常清晰,Retrofit2对Retrofit做了很大改进,针对改进做一下分析和使用说明
底层okhttp不同
Retrofit 默认使用okhttpRetrofit2 默认使用okhttp3
Service接口定义方式不同
在Retrofit2之前如果定义一个同步的函数,应该这样定义:public interface GitHubService {
@POST("/list")
Repo loadRepo();
}
异步函数定义public interface GitHubService {
@POST("/list")
void loadRepo(Callback<Repo> cb);
}
Retrofit2 同步异步方法定义一个接口就可以了mport retrofit.Call;
public interface GitHubService {
@POST("/list")
Call<Repo> loadRepo();
}
如果要调用同步请求,只需调用execute;而发起一个异步请求则是调用enqueue。
Retrofit2 可以取消请求方法
Retrofit2请求使用Call,Call有cancel方法可以取消请求只需调用call.cancel()就可以取消请求。
Converter现在从Retrofit2中删除,需要根据自己的需要引入Converter
这里是Square提供的官方Converter modules列表。选择一个最满足你需求的。Gson: com.squareup.retrofit:converter-gson
Jackson: com.squareup.retrofit:converter-jackson
Moshi: com.squareup.retrofit:converter-moshi
Protobuf: com.squareup.retrofit:converter