-
Notifications
You must be signed in to change notification settings - Fork 2.4k
有多个BaseUrl 怎么处理 #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
针对第一个问题,最近问我的人有点多,这个 |
完善了多个 baseUrl 吗 |
看到一个做法,利用反射。retrofit 创建的时候,用反射获取baseUrl 。baseUrl写到service里面。 |
使用的话,大概就是
|
感谢分享,我研究下 |
醉了,你这个还是创建了多个retrofit ,我要解决的是,一个retrofit 实现多个baseurl |
@get("http://xxxxxxxx/api/data/{type}/{size}/{page}") |
我要实现的效果和上面的代码差不多,给每个interface加上一个注解,注解里面有baseurl,从而实现这个interface 的每个方法都使用这个baseurl ,而其他地方都不用改,也不用重复创建retrofit , 不加上这个注解就使用retrofit 默认的baseurl,这样一个注解就解决所有问题 |
Soga ,没想那么深入呢……所以这是要retrofit 变成单例? |
感觉不如给retrofit提个issue |
多个url,我觉得还是做成多个retrofit比较好。这样接口和业务更清晰 |
@jamesliao333 使接口和业务更清晰多划分几个API interface 就可以了, 但是创建几个其他配置一样只是baseurl 不一样的retrofit 对象,代价太大,retrofit 内部在每次请求网络接口时,也只是把初始化时配置的baseurl 和每个方法的@get中的url组合后作为请求地址 |
@JessYanCoding 感谢作者的回复。但是感觉在@get @post里面加@url,如果是简单几个接口还可以这样解决。但遇到同等量级的几个请求服务器同时并存,每次在接口里面带入url,也不是非常好的解决方案哈。而且这样会使到网络请求代码更混乱,难以管理。再次感谢! |
@jamesliao333 是的,就是挺不方便的,但是retrofit既然这样设计肯定有它考虑到的地方,所以我思考使用Aop能否实现 |
@JessYanCoding 加油啊,持续关注! |
@JessYanCoding 老大,看上面都是过年的回复了,那你这现在解决这个问题了没有.坐等,急急急急, |
@cocowobo 老铁,你没看我arms都更新了几个大版本了啊,现在工作又忙得很,理论方法去年就想好了,要想实现还需要些时间哦 |
辛苦了,我很是佩服你的,你的源码对于我这 初学mvp和Dagger2和rxjava的人来说是个非常好的实践代码,
确实我们公司的接口就包括了很多个baseusl然后我就迫切可以看到你的新的解决代码,否则我这里感觉有
小瑕疵.却不能帮你解决的小尴尬,希望后面可以看到你的新的解决方法的出炉,老铁支持你~~~~
在 2017-04-21 10:48:22,"JessYan" <notifications@github.com> 写道:
@cocowobo 老铁,你没看我arms都更新了几个大版本了啊,现在工作又忙得很,理论方法去年就想好了,要想实现还需要些时间哦
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@cocowobo 其实着都不是叫bug,Retrofit可能故意这样设计的,可以在每个接口动态传全路径,也可以根据不同的baseurl,new多个Retrofit,这些都是可以马上解决这个问题的,我只是觉得这些都并不完美,想用Aop的方式优雅的解决的,但是由于各方面原因以及时间的问题,所以有理论但是也没实践 |
@cocowobo @jamesliao333 https://github.com/JessYanCoding/RetrofitUrlManager 解决了仅使用一个 Retrofit 对象即可做到同时存在多个 BaseUrl ,并且每个 BaseUrl 都可以在 App 运行时动态切换为任意指定的 BaseUrl 且互不影响 |
当有多个 baseUrl 时,怎么创建retrofit 好些呢? 看了架构源码,感觉不好处理。
还有个问题,没理解 Presenter 创建时,它依赖的对象是怎么创建的?希望指教下
The text was updated successfully, but these errors were encountered: