网上针对使用Retrofit遇到多个baseUrl的情况,有各种解决方案。我也来凑个热闹,开源一个通过注解方式来处理的解决方案。
使用非常简单,只用到了@Api和@MergeName这两个注解,且这俩都是RetentionPolicy.SOURCE级的注解。
@Api呢只能在接口上使用,被@Api注解的所有接口,在编译时其中的所有方法都将会被合并到一个接口中,并修改其中@GET、@POST等所有Retrofit的请求方式类注解的value。具体是在不完整的URL前加上baseUrl变为完整的URL地址。而Retrofit恰恰在遇到完整URL时会忽略掉构建实例时所指定的baseUrl,就这样,简单轻松的实现了多个baseUrl的管理。
@MergeName 可以在任意位置使用,作用是指定合并后的接口名
详细使用方法请移步GitHub:https://github.com/qgswsg/SugarOrange
效果图