Retrofit 2.0
先来说一下Retrofit 2.0版本中一些引人注意的地方。
在Retrofit 2.0中,最大的改动莫过于减小库的体积,首先,Retrofit 2.0去掉了对所有的HTTP客户端的兼容,而钟情于OkHttpClient一个,极大地减少了各种适配代码,原因一会儿说;其次,拆库,比如将对RxJava的支持设置为可选(需要额外引入库);再比如将各个序列化反序列化转换器支持设置为可选(需要额外引入库)。于2.0抛弃HttpClient和HttpURLConnection,为了减小库体积是一方面,另外一个重要的原因作为一个专门为Android&Java 应用量身打造的Http栈,OkHttpClient越来越受到各个大的开源项目的青睐,毕竟它本身就是开源的。
此外,OkHttpClient与HttpClient相比,它最大的改进是自带工作线程池,所以上层应用无需自己去维护复杂的并发模型,而HttpClient仅仅提供了一个线程安全的类,所以还需要上层应用去处理并发的逻辑(实际上Volley一部分工作就是干这个)。从这个角度来说,Retrofit得益于OkHttpClient的优势,较之于Volley是一种更加先进的网络框架。
由于Retrofit不需要去关心并发工作线程的维护,所以它可以全力关注于如何精简发送一个请求的代价,实际上使用Retrofit发送一个请求实在是太easy了!
简单示例
首先定义请求接口,即程序中都需要什么请求操作
public interface GitHubService {
@GET("/users/{user}/repos")
List<Repo> listRepos(@Path("user") String user);
}
然后通过RestAdapter生成一个刚才定义的接口的实现类,使用的是动态代理。











