本文仅介绍RxHttp + 协程的使用,更多功能请查看 RxHttp 让你眼前一亮的Http请求框架 RxHttp 完美适配Android 10/11 上传/下载/进度监听 RxHttp 全网Http缓存最优解...:rxhttp:2.7.3' kapt 'com.github.liujingxing.rxhttp:rxhttp-compiler:2.7.3' //生成RxHttp类,纯Java项目,请使用...参数为必须,传入RxJava版本号 arg("rxhttp_rxjava", "3.1.1") arg("rxhttp_package", "rxhttp...2、RxHttp 协程使用 ============= 2.1、请求三部曲 用过RxHttp的同学知道,RxHttp发送任意请求皆遵循请求三部曲,如下: [1.jpg] 代码表示 //Kotlin 协程...那么,APT给RxHttp带来了哪些优势?RxHttp又是如何使用APT的?
本文系 RxHttp作者不怕天黑 向本博客投稿,并授权在本站发表。...那RxHttp就没有缺点吗?...有,那就是它的稳定性目前还不如retrofit,毕竟RxHttp刚出道8个月,且全部是我一个人在维护,当然,并不是说RxHttp不稳定,RxHttp未开源前,在我司的项目已经使用了近2年,接着今年4月份将其开源...RxHttp类,即可一条链发送请求 annotationProcessor 'com.rxjava.rxhttp:rxhttp-compiler:1.3.6' //管理RxJava及生命周期,Activity...3.3.1、第一部曲:确定请求类型 RxHttp内部共提供了14个请求方法,如下: RxHttp.get(String) //get请求 参数拼接在url后面 RxHttp.head
:rxhttp:1.0.1' //注解处理器,生成RxHttp类,即可一条链发送请求 annotationProcessor 'com.rxjava.rxhttp:rxhttp-compiler:1.0.1...我们现在来解疑惑,为什么我们的库叫RxHttp,但是初始化、设置公共参数等却用HttpSender?因为RxHttp这个类不在RxHttp库中,它是通过注解处理器生成的类。...前面我们看到gradle依赖时,使用了 annotationProcessor 'com.rxjava.rxhttp:rxhttp-compiler:1.0.1' 该注解处理器的目的就是在项目中生成RxHttp...,而Post是RxHttp.postForm,除此之外,没有任何区别,我们在看来来,RxHttp都有哪些静态方法供我们选择请求方式 ?...如果你觉得RxHttp+RxLife好用,请记得给我star RxHttp还是会有它的不足,如果有好的idea,请留言或者联系我。
简介 数据解析器Parser在RxHttp担任着一个很重要的角色,它的作用的将Http返回的数据,解析成我们想要的任意对象,可以用Json、DOM等任意数据解析方式。...我们也许可以这样: RxHttp.get("http://www...")...代码都差不多,就不在讲解了,直接看怎么用: RxHttp.get("http://www...")...继续看看怎么用 RxHttp.get("http://www...")...自答: 因为这3个解析器都涉及到了具体的业务需求,每个开发者的业务逻辑都可能不一样,故不能封装进RxHttp库里。
首先,我觉得是对文件的操作不是那么的友好,如文件上传/下载、上传/下载进度监听、断点下载,这些都需要我们进行二次封装,看过Android 史上最优雅的实现文件上传、下载及进度的监听的同学知道,使用RxHttp...也是非常重要的一点,那就是Activity/Fragment销毁时,对请求的关闭,通常我们的做法是为请求设置Tag,然后根据此Tag去关闭一系列请求,又或者拿到Call对象,去关闭单个请求,极其的麻烦,如果你使用RxHttp...会对我们传入url做判断,如果url里已经有baseUrl,即是一条完成url链接,就不会添加@DefaultDomain注解表明的baseUrl,否则就会添加,我们通过日志来观察以下结果(过滤RxHttp...Url.baseUrl = "http://www.baidu.com"; //更改域名,将taobao域名改为baidu RxHttp.get("/service/getIpInfo.php")...其实,RxHttp远不止本篇文章说的这些优点,更多彩蛋,请查看源码
前言 本文将直接使用RxHttp库实现文件上传、下载、断点下载、进度的监听,不对RxHttp做过多讲解,如果对RxHttp不了解,可以先去查阅相关资料先行了解,本文目的在于让更多的读者知道RxHttp库...上传 RxHttp.postForm("http://...")...//文件存储路径 String destPath = getExternalCacheDir() + "/" + System.currentTimeMillis() + ".apk"; RxHttp.get...//文件存储路径 String destPath = getExternalCacheDir() + "/" + System.currentTimeMillis() + ".apk"; RxHttp.get...下一文将继续使用RxJava强大的操作符,看看它与RxHttp又能擦出怎样的火花。
com.alibaba:fastjson:1.1.59.android'//可选其它框架比如Gson RxJava2衔接Retrofit2 先封装一个网络框架的管理类,方便调用 public class RxHttp...BASE_URL = "https://github.com/"; private Map<String, Retrofit mRetrofitMap = new HashMap< (); private RxHttp...() { } /** * 单例模式 * @return */ public static RxHttp getInstance() { return RxHttpHolder.sInstance...; } private static class RxHttpHolder{ private final static RxHttp sInstance = new RxHttp(); }...RxHttp.getInstance().getSyncServer().getLatestVersion("1", "1.0.0") .compose(RxSchedulers.observableIO2Main
file.exists()) { file.mkdirs(); } RxHttp.getInstance().getSyncServer() .musicList(albumUrl) .flatMap...musicItem -> { musicFile = new File(file.getAbsolutePath(), musicItem.getName() + “.mp3”); return RxHttp.getInstance
作者:不怕天黑 来源:https://juejin.im/post/6859156343228792840 案件描述 在一个安静的下午,一妹子在RxHttp群里反馈(群号:378530627),自己开发的...这里解释下,妹子采用RxHttp+RxJava结合的方式发请求 经过第一轮询问后,以上猜想轻而易举的被推翻了,我也大概知道了案件的细节,为此,我用代码来还原一下,为简化案件,还原时,我会适当的做出修改,...R.layout.main_activity); request1(); request2(); request3(); } public void request1() { RxHttp.get
actualTypeArguments[0] } //用以下代码替换TypeToken类相关代码即可 val type = object : TypeLiteral() {}.type 对于泛型的组合,还可以用RxHttp
RxHttp 内部只有一个业务逻辑的管道,通过自定义观察者,拿到Disposable对象,暴露给Scope接口,Scope的实现者就可以在合适的时机调用Disposable.dispose()方法中断管道
是目前诸多热门网络请求库的底层实现,比如 Retrofit、RxHttp 等; Retrofit Square 2013年开源,基于 OkHttp 的封装,目前 主流 的网络请求库。
领取专属 10元无门槛券
手把手带您无忧上云