Android Retrofit2+OkHttp3+RxJava 三联合
2017-06-29 00:00
302 查看
最近项目里要用到网络 框架,这个3组合最近比较火,我也拿来试试水;得出以下几点个人看法;
像android、iOS 客户端 上的应用,离开网络 立马就缺少了灵气,本来一个鲜活的应用,如花朵一样盛放着,他需要网络的支持,服务器的培育;
问题:如图所示
请求地址: http://apis.juhe.cn/cook/query.php
分别单独使用 OkHttp3、Retrofit2、RxJava,然后在合起来使用,通过这样的方式来 认识 这个组合;
首先要知道 OkHttp3、Retrofit2、 都是网络请求库
一、OkHttp3
二、Retrofit2
Retrofit2的使用大大简化了 我们okhttp 的使用,我的理解Retrofit2的诞生就是为了简化okhttp而来,他的使用依赖okhttp,是依赖关系
1、Retrofit2使用
三、RxJava
RxJava就是处理异步的一个库,最基本是基于观察者模式来实现的。通过Obserable和Observer的机制,实现所谓响应式的编程体验。 RxAndroid是RxJava在Android上的一个扩展;
也就是说,利用Obserable和Observer 我们可以很好的实现异步请求;
在android中、凡是与 UI相关的操作必须放到主线程。而我们往往会将耗时的操作、比如网络请求、放到子线程去处理,处理完后又要更新UI,这时候RxAndroid就派上了用场,具体的使用,这里就不说了,可以参考http://blog.csdn.net/chen_zhang_yu/article/details/52900725这个文档;
这三者、也可以说成是两者、一个是网络请求、一个是处理异步 更新UI;第一个OkHttp3可以单独使用、Retrofit2的使用建立在OkHttp3的基础上,RxJava也可以单独使用;
由于网络需求、以及异步更新、这三者可以结合在一起使用;但是这里要警记:任何第三库的出现,它是专门为解决某一个问题而产生的,也就是它并不完全的适用于任何场景,如果想要提高自己的应用的质量,还需思考清楚我们的应用需求,跟第三库的能力是否吻合,或者吻合成度有多高,这些都是需要考虑进去的,不要一味的因为其流行,就非要强制我们的应用中使用;
像android、iOS 客户端 上的应用,离开网络 立马就缺少了灵气,本来一个鲜活的应用,如花朵一样盛放着,他需要网络的支持,服务器的培育;
问题:如图所示
请求地址: http://apis.juhe.cn/cook/query.php
分别单独使用 OkHttp3、Retrofit2、RxJava,然后在合起来使用,通过这样的方式来 认识 这个组合;
首先要知道 OkHttp3、Retrofit2、 都是网络请求库
一、OkHttp3
简单使用方式: 这是我们从网络请求到数据 、在放UI的一般操作,这是OkHttp3的单独使用方式
a、 OkHttpClient client=new OkHttpClient();//通过他来发送请求,接受响应 b、 //请求 、采用get请求 、请求一个url 搞定: http://apis.juhe.cn/cook/query.php?key="" Request request=new Request.Builder().url(url).build(); c、 //执行 client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { d、//请求失败 } @Override public void onResponse(Call call, Response response) throws IOException { //请求完成 成功 e、 //转model response---》model f、 //放在UI上 } });
上面我们看到了okhttp 请求 一般做这几部 1、请求 地址 参数 2、响应 { 成功: a、son-》model 转模型 b、到UI主线程更新UI }
二、Retrofit2
Retrofit2的使用大大简化了 我们okhttp 的使用,我的理解Retrofit2的诞生就是为了简化okhttp而来,他的使用依赖okhttp,是依赖关系
1、Retrofit2使用
a、//Retrofit 创建 设置基本的 url 服务器地址 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://apis.juhe.cn/") .build(); b、//请求 请求单独的写在接口里面 public interface IHttpServiceRequest { //获取菜单接口 @GET("/cook/query.php") Call getFood(@Query("key")String key); c、执行请求 IHttpServiceRequest service retrofit.create(IHttpServiceRequest.class); }
三、RxJava
RxJava就是处理异步的一个库,最基本是基于观察者模式来实现的。通过Obserable和Observer的机制,实现所谓响应式的编程体验。 RxAndroid是RxJava在Android上的一个扩展;
也就是说,利用Obserable和Observer 我们可以很好的实现异步请求;
在android中、凡是与 UI相关的操作必须放到主线程。而我们往往会将耗时的操作、比如网络请求、放到子线程去处理,处理完后又要更新UI,这时候RxAndroid就派上了用场,具体的使用,这里就不说了,可以参考http://blog.csdn.net/chen_zhang_yu/article/details/52900725这个文档;
这三者、也可以说成是两者、一个是网络请求、一个是处理异步 更新UI;第一个OkHttp3可以单独使用、Retrofit2的使用建立在OkHttp3的基础上,RxJava也可以单独使用;
由于网络需求、以及异步更新、这三者可以结合在一起使用;但是这里要警记:任何第三库的出现,它是专门为解决某一个问题而产生的,也就是它并不完全的适用于任何场景,如果想要提高自己的应用的质量,还需思考清楚我们的应用需求,跟第三库的能力是否吻合,或者吻合成度有多高,这些都是需要考虑进去的,不要一味的因为其流行,就非要强制我们的应用中使用;
相关文章推荐
- Android Http 标准框架,底层 OkHttp,与 RxJava 完美结合,比 Retrofit 更简单易用。
- RxAndroid+RxJava+Gson+retrofit+okhttp初步搭建android网络请求框架
- Android 封装Okhttp+Retrofit+RxJava,外加拦截器实例
- android 网络请求Retrofit+rxjava+okhttp 轻封装
- Android:Retrofit 与 RxJava联合使用大合集(含实例教程)!
- Android网络请求发展简史和RxJava+Retrofit+OkHttp实践
- 初学者--Android Retrofit+RxJava+OkHttp使用post请求
- Android:Retrofit 与 RxJava联合使用大合集(含实例教程)!
- Android——MVP+xRecyclerView+Retrofit+OkHttp+RxJava结合应用
- Android RxJava+Retrofit+okhttp异步网络加载框架
- Android Retrofit2+OkHttp3+RxJava 三联合
- Android RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- Android Retrofit 2.0(二)使用教程OkHttp3 + Gson + RxJava
- Android Retrofit+okHttp+RxJava 第一篇------Retrofit
- Retrofit 2.0,RxJava(Android), OkHttp3.3
- MVP+Retrofit+RxJava+Okhttp构造一个合格的Android框架
- Android开发相关——Retrofit+RxJava+OkHttp(下)使用
- Android网络框架之Retrofit + RxJava + OkHttp
- Android项目MVP模式框架+okhttp+rxjava+retrofit网络框架
- Android Retrofit+okHttp+RxJava 第二篇------Retrofit+OkHttp