首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈RxJava+Retrofit+OkHttp 封装使用

背景 之前学习完Retrofit+Rxjava之后写了一篇关于封装的博客,发出后受到大家的关注以及使用,由于不断的完善之前的项目,所以决定把最新的项目封装过程讲解出来,供大家查看!...Retrofit介绍: RetrofitokHttp师出同门,也是Square的开源库,它是一个类型安全的网络请求库,Retrofit简化了网络请求流程,基于OkHtttp做了封装,解耦的更彻底:比方说通过注解来配置请求参数...,通过工厂来生成CallAdapter,Converter,你可以使用不同的请求适配器(CallAdapter), 比方说RxJava,Java8, Guava。...懒人简单的使用方式 为什么称为懒人,因为你什么都不用做,直接按照一般案例写rxretrofit使用 引入需要的包 /*rx-android-java*/ compile 'io.reactivex...:rxjava:+' compile 'com.squareup.retrofit:adapter-rxjava:+' compile 'com.trello:rxlifecycle:+'

1K20
您找到你想要的搜索结果了吗?
是的
没有找到

如何使用MVP+Dagger2+RxJava+Retrofit开发(1)

MVP是一种开发模式或者架构,RxJavaRetrofit是两个库,前面的是异步的库,后面的是提供Restful请求的库,这两个库都是为了MVP开发模式服务的。...Dagger2库,RxJava库,Retrofit库会进行简单介绍,了解其运作的机制。...Component--Components从根本上来说就是一个注入器,也可以说是@Inject@Module的桥梁,它的主要作用就是连接这两个部分。...Qualifier--当类的类型不足以鉴别一个依赖的时候,我们就可以使用这个注解标示。...创建Component,依赖注入器,复杂把注入对象注入到注解成员变量 构造方法注入:在类的构造方法前面注释@Inject 成员变量注入:在类的成员变量(非私有)前面注释@Inject 开始注入调用注射器的

1.5K80

使用Retrofit+RxJava实现带进度下载文件

Retrofit+RxJava已经是目前市场上最主流的网络框架,使用它进行平常的网络请求异常轻松,之前也用Retrofit做过上传文件下载文件,但发现:使用Retrofit做下载默认是不支持进度回调的...接下来我们一起封装,使用Retrofit+RxJava实现带进度下载文件。 github:https://github.com/shuaijia/JsDownload 先来看看UML图: ?...:2.0.0-beta4' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4' 使用时注意版本号 2、写回调 /** * Description...// observeOn()改变调用它之后代码的线程 retrofit.create(DownloadService.class) .download...; 使用RxJava的map方法将responseBody转为输入流; 在doOnNext中将输入流写入文件; 当然也需要注意下载回调的各个位置。

2.5K10

Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP

Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP 项目截图 这是我的目录结构 五步使用RxJava+Retrofit2+Okhttp+RxCache  第一步:导包...compile 'io.reactivex:rxjava:1.1.8' compile 'io.reactivex:rxandroid:1.2.1' compile 'com.squareup.retrofit2...:adapter-rxjava:2.0.0-beta4' compile 'com.github.VictorAlbertos.RxCache:core:1.4.6' 第二步:新建API接口 public...一个逻辑模型可以对于多种视图模型 使用MVC的目的是将MV的实现代码分离,方便扩展,便于以后的管理 从开发者的角度,MVC把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面开发...把Activity的ViewController抽离出来就变成了ViewPresenter。

4.2K80

Android基于Retrofit2.0 封装的超好用的RetrofitClient工具类

本篇是去年出的一篇关于retrofitrxJava的文章,收到很多讨论和好评,今天再次编辑一下发出来,以便对RxJavaRetrofit的整理系统的学习入门。...RetrofitClinent 基于Retrofit2.0Rxjava封装的RetrofitClient. 避免重复创建Retrofit实列. 调用方便简洁....支持自定义扩展的APIService 统一处理无网络情况,支持加载进度回调 结合封装RxJava 支持自己定义的缓存机制 使用原生的Retrofit请求网络,熟悉的朋友必定了解,在某个ApiServie...这次对Retrofit进阶篇,本次封装已加入RxJava,请在阅读下文前请先了解RXJAVA本人写的Retrofit系列文章(原文可点击阅读)....很多时候BaseApiService无法满足需求时,Retrofit增加了扩展接口 create 来创建你的API,接着调用execute就可以RxJava关联 。

3K20

Android RxJava 实战讲解:优雅实现 网络请求轮询

前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。 ?...注:关于 Rxjava中的延时创建操作符interval() intervalRange()的使用请看文章Android RxJava:最基础的操作符详解 - 创建操作符 ---- 2....功能说明 本文将采用Get方法对 金山词霸API 按规定时间 重复发送网络请求,从而模拟 轮询 需求实现 采用 Gson 进行数据解析 ? ---- 3....RxJava 的轮询需求,关于Retrofit使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现 步骤1: 添加依赖 a....compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile

2.3K40

Android RxJava应用:优雅实现网络请求轮询(无条件)

前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。...需求场景 注:关于 Rxjava中的延时创建操作符interval() intervalRange()的使用请看文章Android RxJava:最基础的操作符详解 - 创建操作符 2....功能说明 本文将采用Get方法对 金山词霸API 按规定时间 重复发送网络请求,从而模拟 轮询 需求实现 采用 Gson 进行数据解析 3....RxJava 的轮询需求,关于Retrofit使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现 步骤1: 添加依赖 a....compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile

87920

Android网络访问库 - Retrofit学习(1)基础

简单的说: 使用Retrofit转换HTTP 的API协议成一个java的Interface服务,我们直接使用java类会方便好多。...支持同步异步的调用方式 使用注解描述HTTP请求 对象转换,比如从json转换成java对象 支持多请求体(Multipart request body)和文件上传 类库引用 添加依赖 在你的应用级别的...: compile 'com.squareup.retrofit2:converter-gson:2.1.0' 集成OKHTTP 为了避免重复引用OKHTTP,你还可以这么使用: compile (...而在 2.x 时,不再区分同步异步调用,都被包裹在 一个泛型Call类中。 下面我们从 “接口定义” 调用” 来对比他们的不同。...2.x不再以参数返回值的方式区分异步同步的请求。 “调用”的区别 Retrofit 1.9 时 同步是直接调用。 而异步需要传入回调的实现。在实现里处理成功失败的方法。

97100

深入浅出RxJava+Retrofit+OkHttp网络请求

各自的职责:Retrofit 负责请求的数据请求的结果,使用接口的方式呈现,OkHttp 负责请求的过程,RxJava 负责异步,各种线程之间的切换。...封装成果 封装完以后,具有如下功能: 1.Retrofit+Rxjava+okhttp基本使用方法 2.统一处理请求数据格式 3.统一的ProgressDialog回调Subscriber处理...使用步骤,接下来我们结合RxJava讲述 ReTrofit+Rxjava基本使用 对比之前的Retrofit使用 1.在于我们需要修改service接口返回信息我们需要返回一个Observable对象...集合Retrofit使用就介绍完了,同样的可以发现使用起来很多重复性的代码,而且使用也不是那么简单,所以才有了下面的封装 ReTrofit+Rxjava进阶封装之路 先来一张流程图压压惊 ?...先给大家看看为师的完全体功能: 1.Retrofit+Rxjava+okhttp基本使用方法 2.统一处理请求数据格式 3.统一的ProgressDialog回调Subscriber处理 4

5.9K10

Android RxJava应用:优雅实现网络请求轮询(有条件)

前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。...功能说明 采用Get方法对 金山词霸API 按规定时间重复发送网络请求,从而模拟 轮询 需求实现 停止轮询的条件 = 当轮询到第4次时 采用 Gson 进行数据解析 3....RxJava 的轮询需求,关于Retrofit使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现 步骤1: 添加依赖 a....在 Gradle加入Retrofit库的依赖 build.gradle dependencies { // Android 支持 Rxjava // 此处一定要注意使用RxJava2的版本 compile...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile

96820

Android:RxJava 结合 Retrofit 优雅实现 网络请求轮询

前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。 ?...功能说明 采用Get方法对 金山词霸API 按规定时间重复发送网络请求,从而模拟 轮询 需求实现 停止轮询的条件 = 当轮询到第4次时 采用 Gson 进行数据解析 ? ---- 3....发送网络请求 对返回的数据进行处理 本实例侧重于说明 RxJava 的轮询需求,关于Retrofit使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现...此处一定要注意使用RxJava2的版本 compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' // 支持Gson解析 compile...总结 本文主要讲解了 Rxjava创建操作符的实际开发需求场景:有条件轮询需求 ,并结合RetrofitRxJava 实现 下面我将结合 实际场景应用 & Rxjava的相关使用框架(如Retrofit

2K30

Android:RetrofitRxJava联合使用大合集(含实例教程)!

Retrofit之所以作为现在最流行的网络请求库,其中一个主要原因是:支持RxJavaRxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。...二者结合使用 Retrofit之所以作为现在最流行的网络请求库,其中一个主要原因是:支持RxJava 即:Retrofit除了提供传统的网络请求方式外,还提供 RxJava 版本的 网络请求方式...发送网络请求(区别于传统形式) 发送网络请求 对返回的数据进行处理 本实例侧重于说明 RxJava 的线程控制,关于Retrofit使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程...此处一定要注意使用RxJava2的版本 compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0' // 支持Gson解析 compile...4.5 Demo地址 Carson_Ho的Github地址 = Retrofit结合RxJava实战系列:基础使用 ---- 5.

4K20

RxJava从入门到不离不弃(八)——使用场景

RxJava + Retrofit Retrofit 除了提供了传统的 Callback 形式的 API,还有 RxJava 版本的 Observable 形式 API。...下面我用对比的方式来介绍 RetrofitRxJavaAPI 传统版本的区别。 以获取一个 MovieEntity 对象的接口作为例子。...Rxjava的结合,大家可以自己进行封装;那么用上了RxJava,我们就可以用它强大的操作符来对数据进行处理操作,各位看官可以具体去实现,我在这里不做多做赘述。...由于 RxJava Observable 订阅后(调用 subscribe 函数),一般会在后台线程执行一些操作(比如访问网络请求数据),当后台操作返回后,调用 Observer 的 onNext 等函数...相信大多数开发者都使用过EventBus或者Otto,作为事件总线通信库,如果你的项目已经加入RxJavaEventBus,不妨用RxBus代替EventBus,以减少库的依赖。

67410

安全|API接口安全性设计(防篡改重复调用

API接口的安全性主要是为了保证数据不会被篡改重复调用,实现方案主要围绕Token、时间戳Sign三个机制展开设计。 1....Token授权机制 用户使用用户名密码登录后服务器给客户端返回一个Token(必须要保证唯一,可以结合UUID本地设备标示),并将Token-UserId以键值对的形式存放在缓存服务器中(我们是使用...时间戳超时机制是防御重复调用爬取数据的有效手段。...API签名机制 将“请求的API参数”+“时间戳”+“盐”进行MD5算法加密,加密后的数据就是本次请求的签名signature,服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样...安全保障总结 在以上机制下, 如果有人劫持了请求,并对请求中的参数进行了修改,签名就无法通过; 如果有人使用已经劫持的URL进行DOS攻击爬取数据,那么他也只能最多使用30s; 如果签名算法都泄露了怎么办

8.9K51

Carson带你学Android:RxJavaRetrofit联合使用汇总(含实例教程)

Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。...二者结合使用 Retrofit之所以作为现在最流行的网络请求库,其中一个主要原因是:支持RxJava 即:Retrofit除了提供传统的网络请求方式外,还提供 RxJava 版本的 网络请求方式 两种方式在使用上最大的区别在于...基础使用 下面,我将采用最基础的 Retrofit + RxJava 实现 网络请求 的功能 4.1 功能说明 实现功能:将中文翻译成英文 - > 显示到界面 实现方案:采用Get方法对 金山词霸API...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...总结 本文主要讲解了Retrofit & RxJava的结合使用 & 实际开发需求实现

1.1K20

RxjavaRetrofit相恋,如何优雅的取消请求!

前几篇主要介绍了retrofit基本使用,结合rxJava的案列,以及RxJava结合retrofit的封装,包括公用参数,局部参数请求头添加,缓存,https, 文件上下传,结果解析,异常处理等,还有一些技巧...两者结合技巧可点击阅读:http://blog.csdn.net/sk719887916/article/details/52132106 垂直入口:Rxjava +Retrofit 你需要掌握的几个技巧...取消订阅 遇到取消取消订阅的情况可以直接: subscription.unsubscribe(); 避免重复: if (!...observable.unsubscribeOn(Schedulers.io()); 03 这RxJava+Retrofit取消请求 好了 目前很多情况是使用两者来做网络框架的,那么在两者结合情况我们是如何使用取消某个请求呢...,或者避免重复请求,今天就稍微给大家介绍一下本人的处理方式 构建一个接口 主要管理rxJava的Subscription描述。

1K20

Android RxJava应用:优雅实现网络请求嵌套回调

前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。...下面展示的是结合 RetrofitRxJava的基本用法,即未用操作符前 // 发送注册网络请求的函数方法 private void register() { api.register...RxJava 的线程控制,关于Retrofit使用请看文章:这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解) 3.2 步骤实现 步骤1: 添加依赖 a....在 Gradle加入Retrofit库的依赖 build.gradle dependencies { // Android 支持 Rxjava // 此处一定要注意使用RxJava2的版本 compile...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile

1.1K20
领券