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

解决Retrofit多BaseUrl及运行时动态改变BaseUrl?

,文件的存储又使用到另一个服务商,这个也会存在一个 App 出现多个 BaseUrl 动态改变 BaseUrl 的需求场景 如果项目的 BaseUrl 会在 App 启动时,请求服务器,根据服务器的返回结果...,就会从服务器获取三方服务提供商的 BaseUrl ,然后在运行时动态改变这个 BaseUrl 解决方案 其实官方 Api 早已经提供了解决方案来支持多个 BaseUrl 以及运行时动态改变 BaseUrl...,其实之前 Retrofit 默认是支持运行时动态改变 BaseUrl 的,以前是有一个名为 BaseUrl 的接口,而 Retrofit.Builder#baseUrl(BaseUrl) 方法当时传的参数就是这个...这个方案虽然可以支持运行时动态切换 BaseUrl 但是它是全局处理,一经使用改变的是所有请求的 Url ,所以它并不支持多 BaseUrl 并且更可怕的是,这个方案不仅不支持多 BaseUrl ,还会影响...BaseUrl ,但需要动态改变 BaseUrl 的项目 如果对于只需要多 BaseUrl 不需要动态改变 BaseUrl 的项目,其实用 官方静态解决方案 就已经足够了,但我还是推荐用我的这个解决方案

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

解决Retrofit多BaseUrl及运行时动态改变BaseUrl(二)

BaseUrl 除了域名外还包含后面的 "/api",框架不知道 BaseUrl 的具体值,所以框架只会默认所有的 BaseUrl 都只含有域名,所以也就只能替换域名 高级模式 想要解决此类问题也很简单...旧 URL 地址为 "https://www.github.com/wiki/part#baseurl_path_size=1","#baseurl_path_size=1" 表示其中 BaseUrl...baseurl_path_size=1" 表示其中 BaseUrl 为 "https://www.github.com/wiki",您想替换成的 BaseUrl 地址是 "https://www.google.com...=0","#baseurl_path_size=0" 表示其中 BaseUrl 为 "https://www.github.com",您想替换成的 BaseUrl 地址是 "https://www.google.com...=3","#baseurl_path_size=3" 表示其中 BaseUrl 为 "https://www.github.com/wiki/part/issues",您想替换成的 BaseUrl 地址是

1.2K40

Android OkHttp 史上最优雅的设置baseUrl

,或者说动态baseUrl不够友好,Retrofit要求baseUrl 必须是一个final常量,我们想要动态修改,就只能通过增加拦截器去实现,这也是本文重点要说的; 最后,也是非常重要的一点,那就是Activity...单个baseUrl 如果你的项目中只有一个BaseUrl,那么只需要使用@DefaultDomain注解即可,如下: public class Url { @DefaultDomain() //...可以看到,baseUrl跟url成功拼接在了一起,并完成了请求。...baseUrl 单独写在一个变量里,如果每次发请求,我们都需要以baseUrl+url的方式去实现,显然不够友好,那么RxHttp又是如果去解决的呢?...,所以我们就只能通过拦截器去实现,而RxHttp对baseUrl ,没有final关键字的限制,我们只需要对baseUrl重新赋值即可,而且,可以在代码中多次赋值,赋值后立即生效。

1.6K30
领券