最近在学习一些关于 RxJava 和 Retrofit 的相关内容,通过 给 Android 开发者的 RxJava 详解 这篇文章对RxJava 有了一些了解,接着通过 ReactiveX 中文文档 了解了一些相关概念和思想,然后通过 Retrofit 官网 和 Retrofit 在GitHub上的例子 简单了解了Retrofit 的使用,在使用 Retrofit 之前,需要先了解下 RESTful Api,通过 深入理解 RESTful Api 架构 和 理解 RESTful 架构 这两篇文章可以大概了解 RESTful Api,可以更好的理解 Retrofit
本文主要记录 Retrofit 2.0 的简单使用以及 Retrofit 结合 RxJava 的使用
Retrofit 简单使用
Retrofit 目前最新版本是 2.0.0-beta4 ,相比于 1.x 版本,一些 api 有较大变动,因此建议直接通过官方文档和示例进行学习,下面是一个比较基础的 Retrofit 使用示例
添加依赖
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
一般使用 Retrofit 会将 json 数据直接解析转换成 java 对象,因此需要用到 json 解析库作为转换器,官方提供了一些常用的 json 解析库的支持,详情可以在 Retrofit官网 了解到,这里我使用了 Gson 作为转换器。
编写 API
Retrofit 使用注解绑定 URL 链接,这里我直接使用官方例子中的 URL 来做演示,完整链接是:https://api.github.com/repos/square/retrofit/contributors 通过浏览器打开这个链接可以看到一串 json 数据,下面就根据这个 URL 来编写一个 接口
public interface GitHub {
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(@Path("owner") String owner,@Path("repo") String repo);
}
简单分析下这段代码
首先创建了一个接口类 GitHub.java,然后在其中定义了一个方法 contributors()
注解 @GET 表示通过 GET 方式访问这个链接,后面是一个需要根据不同 owner 和 repo 来构造的 URL路径,因为主站的地址往往是不变的,比如 <