Retrofit+Rxjava实现嵌套逻辑的链式调用

Retrofit+Rxjava解决链式请求问题 简介面试的时候,我只是看了简单的看了下,Rxjava+Retrofit做请求的简单应用,当时也没发现有啥好的地方,面试官问了我个问题,你用Retrofit是如何解决链式请求问题的?,当时我懵逼了啥是链式请求啊,回去后正式学习,我才发现这玩意太TM强大了,给我的感觉就是2个字舒坦,看的舒坦,写的也舒坦场景以前的请求都是抽取了get(String url,CallBack callBace),大家肯定... 阅读详情

最近做app有一个需求,service的某个接口(B接口)调用很慢,所以不能频繁的调用,然后service就想了一个逻辑:先返回一个调用速度快的接口(A接口),里面有一个字段,一旦这个字段发生了改变,再去调用第二个接口(B接口)。我们app这边的逻辑也很简单,先把A接口调用返回的值用sharedPreference存到本地,然后每次调用A接口的时候都去对比一下本地的值,要是相等就说明不需要调用B接口,要是不相等就要调用!
然后,我以最快的速度,按照之前的套路写完了
1,先写2个model类对应接口A和接口B
2,解析两个接口的数据。(Gson+okhttpfinal(封装okhttp))
3,写逻辑,先调用A,里面嵌套B
然后写完了,我突然想到,好像可以用Retrofit+Rxjava试试,因为我个人是比较反感嵌套的,尤其是波浪形到吗,剪不断理还乱的逻辑。
(友情提示:这篇文章适合已经熟悉简单的Retrofit+Rxjava模式调用接口的同学,要是不熟悉,建议先收藏本文,去熟悉一下,再回来看,你会获益匪浅。这套流程是我们国外的一个开发写的,我稍加整理,贡献给大家。)

第一步 :创建每个接口的model类

名字是
接口A的model:AppdataVersionEntity
接口B的model:AppdataDownLoadEntity
这个地方代码就不给了,很简单,如果使用gson解析json,建议使用GsonFormat插件,很方便。

第二步 :封装Retrofit

1、按照套路,创建一个类来对Retrofit进行简单的封装

 public RESTClient(Context context) {
        this.context = context;

        Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("")//这个地方一般放你的域名,所有的接口都有这种格式
        .client(provideOkHttpClient(context))//自定义client,如果不需要可以用默认的。                                       .addConverterFactory(GsonConverterFactory.create())//这一步就省去了手动解析json数据了。
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .build();

        restAPI = retrofit.create(RestAPI.class);//创建
    }

2、再来看上面说到的自定义client。

private OkHttpClient provideOkHttpClient(final Context context) {
        //抓log的,要在app的build.gradle的dependencies里面compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        File httpCacheDirectory = new File(context.getCacheDir(), "responses");//创建缓存文件
        Cache cache = new
Android Retrofit + RxJava使用详解 博客地址:http://blog.youkuaiyun.com/kong_gu_you_lan/article/details/73504345 GitHub地址:https://github.com/alidili/Demos/tree/master/RetrofitDemo 立即下载

相关推荐

Linux系统遭遇挖矿病毒深度排查与根治指南

本文提供了一份详尽的Linux服务器挖矿病毒排查与根治指南。当CPU异常满载但常规top命令无法定位进程时,需警惕病毒通过ld.so.preload文件隐藏。文章逐步指导如何清除恶意文件、进程、定时任务,并重点应对pamdicks等顽固变种,最后给出深度排查与系统加固方案,确保服务器安全。

weixin_29207533的博客 454

基于ESP32-P4的低成本旋转式激光雷达系统设计

激光雷达(LiDAR)作为机器人环境感知的核心传感器,其本质是融合光学测距、机电控制与实时数据处理的嵌入式系统。理解时间飞行(ToF)原理与机械旋转耦合机制,是实现高精度点云采集的基础;而系统级误差源——如计时抖动、电机惯性、信号串扰和温漂——直接决定实际建图鲁棒性。在资源受限场景下,选用RISC-V双核MCU(如ESP32-P4)可兼顾实时控制与网络服务能力,通过硬件时间戳捕获、S型加减速轨迹规划、旋转变压器供电及双Bank OTA等工程手段,有效平衡分辨率、帧率与稳定性。本文围绕360°旋转式激光雷达的

weixin_36231030的博客 435

Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys

ubuntu 22.04 apt-get 安装 ros1 ros Noetic 最新版

autolabor的博客 5万+

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1563

利用SPSS实现逻辑回归,树模型,以及广义线性模型

本案例是IBM SPSS数据分析与挖掘实战案例精粹----第九章的学习记录 案例背景:分析出导致急救后迟发性颅脑损伤的主要影响因素,共有201项案例: 分析思路:先使用logistic回归模型进行影响因素筛选,然后利用分类树探索自变量中是否存在交互作用,最后利用广义线性模型过程拟合带交互项的Logistic回归模型 字段:性别,年龄,收缩压,舒张压,血小板,脑挫伤,中线位移,脑肿胀,入院意识,是否手术急救,其余急救措施,是否出现迟发性脑损伤; ...

hepan_defeng的博客 1万+

STK相关总结

STK简介 一.SIM卡应用工具包(SIM Application Toolkit),又名CAT/USAT,它包含一系列终端与SIM卡的交互指令,SIM卡可以应用卡内的小应用程序和终端交互,从而实现增值服务的目的,STK包括三种类,STK-imsi切换,STK –OTA,STK-BIP 功能: (1) Profile download:配置下载,开机初始化SIM卡过程中,终端告诉SIM卡终端支持哪些功能,STK中download指终端将数据发送给SIM卡 (2) Proactive command: 主动式

jingjing_2的博客 3357

LFI Scanner 本地文件包含漏洞扫描、文件路径遍历、敏感文件读取(etcpasswd)

✅ **敏感文件读取验证**:内置`/etc/passwd、/windows/system32/drivers/etc/hosts、phpinfo.php`等敏感文件字典,一键验证漏洞可利用性;🔴 **Windows**:`/windows/win.ini`(系统配置)、`/windows/system32/drivers/etc/hosts`;🔴 **Linux**:`/etc/passwd`(用户信息)、`/proc/version`(内核版本)、`/etc/hosts`(域名解析);

寒寒豆豆软件公司的博客 130

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 3分钟让你明白observeOn和subscribeOn的关系!
下一篇: NestedScrollView嵌套Googlemap滑动冲突的问题解决。
DreamCarMustang
博客等级 码龄12年 10粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值