为何要重复造轮子
为什么要重复造轮子?无非就一个原因
- 以前的轮子有些功能不好用,用起来不够优雅
我们先来说说第一条,Retrofit哪里不好用,用起来不够优雅?
首先,我觉得是对文件的操作不是那么的友好,如文件上传/下载、上传/下载进度监听、断点下载,这些都需要我们进行二次封装,看过Android 史上最优雅的实现文件上传、下载及进度的监听的同学知道,使用RxHttp是多么的简单;
然后,是对多个baseUrl,或者说动态baseUrl不够友好,Retrofit要求baseUrl 必须是一个final常量,我们想要动态修改,就只能通过增加拦截器去实现,这也是本文重点要说的;
最后,也是非常重要的一点,那就是Activity/Fragment销毁时,对请求的关闭,通常我们的做法是为请求设置Tag,然后根据此Tag去关闭一系列请求,又或者拿到Call对象,去关闭单个请求,极其的麻烦,如果你使用RxHttp,在Activity/Fragment中,一行代码就能搞定,并且支持在任意生命周期方法关闭请求,极其简单高效。
以上就是我重复造轮子的主要原因,欢迎大家交(Da)流(Lian)讨论,下面将进入正题。
单个baseUrl
如果你的项目中只有一个BaseUrl,那么只需要使用@DefaultDomain注解即可,如下:
public class Url {
@DefaultDomain() //设置为默认域名,对final关键字没有要求
public static String baseUrl = "http://ip.taobao.com/";
}
发送请求,我们就可以这样

本文探讨了在Android开发中为何不使用Retrofit的baseUrl,而选择自定义轮子RxHttp的原因,包括文件操作不便、baseUrl动态修改、请求管理等。通过示例展示了RxHttp如何设置单个、多个baseUrl,以及动态改变baseUrl的方法,强调其灵活性和易用性。
最低0.47元/天 解锁文章
865

被折叠的 条评论
为什么被折叠?



