retrofit实际上就是对gson和okhttp进行了结合封装。一般来说,我们需要发送网络请求,然后处理返回的数据。而通过retrofit,可以快速简洁的完成这一系列操作,一般还要结合RxJava,让整个过程更加优雅。
准备工作:
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
在gradle中加入这两个库,第二个用于将相应数据转换成我们需要的数据类型。converter(转换器)
推荐使用插件GsonFormat,建立数据模型类文件后使用快捷键alt+s,将json字符串输入就可以快速生成相应的json数据类。
1.最简单的网络访问:
首先来回顾一下如何使用okhttp进行一次网络访问:
Request request=new Request.Builder()
.url(url)
.build();
Call call=client.newCall(request);//将请求封装成任务
call.enqueue...
需要新建request,然后使用onHttpClient和request生成Call,然后执行这个Call的任务。基本上每次网络访问都要重复这个过程,当然,我们可以自己把这个封装一下。
接下来看看retrofit封装后如何进行网络访问:
首先新建一个接口,然后在接口里定义方法,以后所有的网络请求方法也都放在这个接口里:
@GET("course/courseRelease_list")
Call<ResponceBody> getCourse();
这里的注解明显就是指定访问方式了,括号里的参数要结合BaseUrl生成完整的Url。可以发现,这里的Call类具有了泛型。这个类型的意义我们暂时不去考虑,就使用这个ResponceBody。
然后就开始使用了: