Retrofit的优势不说了,但是老版本移除了动态切换BaseUrl的功能,根据网络上各种姿势的方法,发现根本无法满足我司高大上的后台返回,最后使用了JessYan大神封装的切换BaseUrl框架,的确爽得不要不要的,简单易用,但是这仅仅是开始。
附上动态切换BaseUrl地址:https://github.com/JessYanCoding/RetrofitUrlManager 感谢造福了一方百姓。
开始吐槽。
场景:我们项目使用的自己公司服务器以及云主机提供给全国范围内分公司支持业务。在登录之前,我需要从一个地址请求回来一个全国城市的BaseUrl列表,里面包含了主Url以及备用Url,也就是说一个城市2两个BaseUrl。最亮的是请求这个列表所用的Url也有两个,分主备,很nice。要求我在主地址废了的时候,自动切换到备用地址,如此循环。这样的操作就导致了我在登录成功之前,涉及到4个BaseUrl需要切换。
我如何选择正确的BaseUrl呢,服务器会在给我的list的Item中给我一个length,以及前缀字段(我们账号是前缀+工号拼接),我需要在点击登录的时候用输入框里的账号,去循环跟那个超长集合里的每一个城市信息做对比,根据length字段截取账号,然后于服务器返回的前缀字段作比对,如果成功了,那就是正确的BaseUrl。
正文来了,最开始用了大神的框架,我以为我完美的解决了,当我使用不同账号登录的时候,问题来了。后台给我的BaseUrl各种各样