Android OkHttp 史上最优雅的设置baseUrl

本文探讨了在Android开发中为何不使用Retrofit的baseUrl,而选择自定义轮子RxHttp的原因,包括文件操作不便、baseUrl动态修改、请求管理等。通过示例展示了RxHttp如何设置单个、多个baseUrl,以及动态改变baseUrl的方法,强调其灵活性和易用性。
摘要由CSDN通过智能技术生成

为何要重复造轮子

为什么要重复造轮子?无非就一个原因

  • 以前的轮子有些功能不好用,用起来不够优雅

我们先来说说第一条,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/";
}

发送请求,我们就可以这样

  String url = "/service/getIpInfo.php";
  RxHttp.get(url) //Get请求
        .add(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值