身为 Geek 的我们,面对不断更新换代的技术是不是有点感到迷茫呢?其实只要掌握正确的学习方法,新的技术也就不畏惧了。
福利来了
推荐一位大牛【人称:面哥】呕心沥血的一篇经验分享:
程序员之路-学习经验总结分享
正是面哥的鞭策,我决定开始看英文的技术文档,学习新技术也是直接看官网的技术文档,本篇文章就是我在 Retrofit2 的官网看完英文文档 Retrofit 以及参考多篇博文之后总结出来的。
欢迎关注我的微信公众号
不只是原创技术文章,更多的是对生活的思考总结
Retrofit
Retrofit
是一个 Square 开发的类型安全的 REST 安卓客户端请求库。这个库为网络认证、API 请求以及用 OkHttp 发送网络请求提供了强大的框架 。
Retrofit 把 REST API 返回的数据转化为 Java 对象,就像 ORM 框架那样,把数据库内的存储的数据转化为相应的 Java
bean对象。 那么我们知道 Retrofit 是一个类型安全的网络框架,而且它是使用 REST API 的.
REST :
Resources Representational State Transfer
资源表现层状态转化 每一个 URI 代表一种资源
客户端和服务器之间,传递这种资源的某种 表现层(“资源”具体呈现出来的形式,比如.txt,.png,.jpg)
客户端通过四个 HTTP 动词(GET 用来获取资源,POST 用来新建或更新资源,PUT 用来更新资源,DELETE 用来删除资源)对服务器端资源进行操作,实现”表现层状态转化”
Retrofit 的简单使用
这里使用官方的例子介绍,也是以github的api做测试
第零步:
添加依赖:
//okHttp
compile 'com.squareup.okhttp3:okhttp:3.2.0'
//retrofit
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
准备 api 接口:
https://api.github.com/users/wu-leaf/repos
需要封装的 javabean 类
其中我抽取出用来测试的属性如下4个:
public class Repo {
private int id;
private String name;
private String full_name;
private String fork;
//get\set方法
第一步:
改造你的 HTTP API 变成一个 Java 接口。
public interface GitHubService {
@GET("users/{user}/repos")
Call<List<Repo>> listRepos(@Path("user") String user);
}
第二步:
Retrofit 生成一个 GitHubService 接口的实现
Retrofit retrofit = new Retrofit.Builder()