使用Retrofit为指定api优雅的添加header(api版本控制为例)
来源:互联网 发布:数码大师软件下载 编辑:程序博客网 时间:2024/06/15 01:38
使用Retrofit为指定api优雅的添加header(api版本控制为例)
最近在做的项目中有这样一个需求,因为项目已经上线,而现在又需要对个别api进行完善,为了兼容老版本正常访问api,并且新版本也可以使用api新加的返回内容。就有了这样一个解决方案:
api在header里引入标记api版本的字段"Accept::application/json; version=vx.x"
作为一个慵懒android程序猿,首先想到的当然是能不能全局的给所有网络请求都加上这么一个版本控制字段,方便统一管理,简直不能更棒~
项目用的是 Retrofit+Rxjava+OkHttp 来进行网络请求的,Retrofit可以使用自定义的 okhttoclient 全剧添加版本控制很好实现。
然鹅,事情并没有想象的那么简单,这次的需求是个别api升级到v1.1版本,那也就表示以后api的版本升级并不是统一升级的。。。
那只能是对api一个一个添加了,retrofit做网络请求,api是写在一个类里边的,以方法的形式,类似于这样:
现在有两种方法添加header信息:
1.在方法参数上新加一个参数@Header(“Accept”) String accept)
这种方法显然不现实,增加参数后还要在调用这个网络请求的地方去相应的增加参数,成本有点大。
2.在方法上边用@Headers(“要添加的header内容”) 来静态添加header信息
嗯,这貌似是个不错的解决方案,参数没有增加,修改成本相对较低。
参考资料:
http://blog.csdn.net/zcmain/article/details/51367665
阅读全文
1 0
- 使用Retrofit为指定api优雅的添加header(api版本控制为例)
- Java8<使用流API优雅地将int[]转换为ArrayList>
- 使用ItemDecoration为RecyclerView添加header
- 版本为2.5的OpenMP的所有API函数
- 使用Retrofit请求API
- win32 API LoadImage()错误:返回值为0,GetLastError提示错误为“系统找不到指定的文件”
- Android中使用Retrofit动态、静态添加Header的方案
- API接口的编写(ios为例)
- 为Retrofit 2.0 添加缓存
- api中的版本控制
- C++颠覆之路(6)-使用不定长参数列表为不同版本的API提供统一的解决方案
- Collection转换为数组时的API使用不当
- API开发的版本控制技巧
- RecyclerView优雅的添加Header和Footer
- 如何优雅的为你的Recyclerview添加分割线
- Retrofit 请求体header的添加
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Android 优雅的为RecyclerView添加HeaderView和FooterView
- Cocos2dx 3.X Label的换行
- IE低版本浏览器兼容CSS3的属性的工具htc
- STM32f4编译时出现Invalid ROM Table解决办法
- Numpy、SciPy、MatPlotLib在Python2.7.9下的安装与配置
- Liquibase 接触
- 使用Retrofit为指定api优雅的添加header(api版本控制为例)
- Stm 32 IAP 在线 升级IAP 的 操作
- 详解Angular.js数据绑定时自动转义html标签及内容
- cookie
- Idea远程调试
- iframe,H5标签embed加载页面,session失效后页面嵌套解决办法
- 算法谜题70 跳跃成对1
- 学习自动化测试的一些感悟
- cookie和session的区别