android 开源框架 Retrofit的简单使用
2017-05-19 23:05
330 查看
简介
它是一个可以用于Android和java的网络库,使用它可以简化我们网络操作的工作,提高效率和正确率。其核心任务只有一个就是:Client端与Server端进行数据的交互和操作。所以Retrofit就将底层的代码都封装起来只是暴露出了我们业务中的数据模型和操作方法。
这样理解之后,我们学习Retrofit就简单明了很多了。应该从以下这几点开始学习:
1.如何传入我们业务需求的URL以及变量参数
2.如何将我们业务中从服务器获取的Jason数据封装为与Retrofit向对应的类或者接口
3.如何使用Retrofit进行get,post,delete,put等操作。
4.还有就是如何在我们项目中配置Retrofit
特性
1.将rest API封装为java接口,我们根据业务需求来进行接口的封装,实际开发可能2.会封装多个不同的java接口以满足业务需求。(注意:这里会用到Retrofit的注解:比如get,post)
3.使用Retrofit提供的封装方法将我们的生成我们接口的实现类,这个真的很赞,不用我们自己实现,通过注解Retrofit全部帮我们自动生成好了。调用我们实现类对象的接口方法。
Demo
1.工程中配置
PS:这里需要值得注意的是导入的retrofit2包的版本必须要一致,否则就会报错
2.创建retrofit对象
addConverterFactory添加将要定义的接口函数的返回类型
3.将Rest API转换为java接口
4.创建接口对象
5.调用接口
注解
Retrofit提供的请求方式注解有@GET和@POST,参数注解有@PATH和@Query等,我们只介绍常用的;前两个顾名思义就是定义你的请求方式Get or Post,后面的@PATH指的是通过参数填充完整的路径,一般用法:
它是一个可以用于Android和java的网络库,使用它可以简化我们网络操作的工作,提高效率和正确率。其核心任务只有一个就是:Client端与Server端进行数据的交互和操作。所以Retrofit就将底层的代码都封装起来只是暴露出了我们业务中的数据模型和操作方法。
这样理解之后,我们学习Retrofit就简单明了很多了。应该从以下这几点开始学习:
1.如何传入我们业务需求的URL以及变量参数
2.如何将我们业务中从服务器获取的Jason数据封装为与Retrofit向对应的类或者接口
3.如何使用Retrofit进行get,post,delete,put等操作。
4.还有就是如何在我们项目中配置Retrofit
特性
1.将rest API封装为java接口,我们根据业务需求来进行接口的封装,实际开发可能2.会封装多个不同的java接口以满足业务需求。(注意:这里会用到Retrofit的注解:比如get,post)
3.使用Retrofit提供的封装方法将我们的生成我们接口的实现类,这个真的很赞,不用我们自己实现,通过注解Retrofit全部帮我们自动生成好了。调用我们实现类对象的接口方法。
Demo
1.工程中配置
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'//Retrofit2所需要的包 compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'//ConverterFactory的Gson依赖包 compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依赖包
PS:这里需要值得注意的是导入的retrofit2包的版本必须要一致,否则就会报错
2.创建retrofit对象
Retrofit retrofit = new Retrofit.Builder() .baseUrl("Https://api.douban.com/") //增加返回值为String的支持 .addConverterFactory(ScalarsConverterFactory.create()) //增加返回值为Gson的支持(以实体类返回) .addConverterFactory(GsonConverterFactory.create()) //增加返回值为Oservable<T>的支持 .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build();
addConverterFactory添加将要定义的接口函数的返回类型
3.将Rest API转换为java接口
public interface GitHubService { //对应2中的GsonConverterFactory @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); //对应2中的ScalarsConverterFactory @GET("users/{user}/repos") Call<String> listRepos(@Path("user") String user); //对应2中的RxJavaCallAdapterFactory @GET("users/{user}/repos") Observable<Repo> listRepos(@Path("user") String user); }
4.创建接口对象
GitHubService service = retrofit.create(GitHubService.class);//获取API接口的实现类的实例对象
5.调用接口
Call<List<Repo>> repos = service.listRepos("octocat");
注解
Retrofit提供的请求方式注解有@GET和@POST,参数注解有@PATH和@Query等,我们只介绍常用的;前两个顾名思义就是定义你的请求方式Get or Post,后面的@PATH指的是通过参数填充完整的路径,一般用法:
@GET("{name}") Call<User> getUser(@Path("name") String name); 这里的参数username会被填充至{name}中,形成完整的Url请求地址,{name}相当于一个占位符; @POST("mobileLogin/submit.html") Call<String> getString(@Query("loginname") String loginname, @Query("nloginpwd") String nloginpwd); 这里@Query("loginname")就是键,后面的loginname就是具体的值了,值得注意的是Get和Post请求,都是这样填充参数的;
相关文章推荐
- android快捷开发之Retrofit网络加载框架的简单使用
- android图片轮播效果,开源框架RollViewPager的简单使用
- Android中网络框架Retrofit2.0简单使用
- Android开源网络请求框架Retrofit的介绍使用
- Android十大主流开源框架使用教程---Retrofit使用教程
- android快捷开发之Retrofit网络加载框架的简单使用
- Android中android-async-http开源网络框架的简单使用
- Android 当前比较新的框架组合,Retrofit,OKHttp,RXJava的一些简单使用
- Android开源数据库框架-LitePal的使用
- Android中使用开源框架Citypickerview实现省市区三级联动选择
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- 转:Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android使用开源框架ANDROID-IMAGE-INDICATOR实现图片轮播部署
- Android中使用开源框架EventBus3.0实现Fragment之间的通信交互
- android开源框架android-async-http使用
- Android 开源框架Universal-Image-Loader的初次使用
- 配置使用Android数据库开源框架GreenDao
- android(安卓)开源框架 使用在线工具jsonschema2pojo根据json生成java对象
- Android开源框架的SlidingFragment的使用
- Android Logger框架简单使用