retrofit动态设置URL采用反射机制解决

简介: 前几天开发项目的时候碰到一件比较头疼的事,就是获取json数据的主域名不一样,最简单粗暴的方法就是重新写一份retrofit,但这是十分低效的,写重复性代码就程序员最不想做的一件事之一,所以找了好多文章,最后找到了一个反射机制解决此问题的

一、产生动态设置url的需求的原因

前几天开发项目的时候碰到一件比较头疼的事,就是获取json数据的主域名不一样,最简单粗暴的方法就是重新写一份retrofit

但这是十分低效的,写重复性代码就程序员最不想做的一件事之一,所以找了好多文章,最后找到了一个反射机制解决此问题的

一个好方法,代码量也不是很多,也比较好理解。

二、利用反射解决retrofit的动态设置URL

//由于retrofit中baseUrl字段是私有的所以采用反射获取此字段
val field: Field = Retrofit::class.java.getDeclaredField("baseUrl")

//设置成可访问
field.isAccessible = true

//构造一个HttpUrl实例,然后设置baseUrl
val newUrl = HttpUrl.parse(URL)
field.set(retrofit, newUrl)

三、结语

虽然是一个简单的问题,但是也节省了我们一些时间,所以还是值得的

目录
相关文章
|
3月前
|
测试技术
Cypress如何设置全局URL?
Cypress如何设置全局URL?
|
3月前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
164 3
|
3月前
|
Python
URL分发机制简介
URL分发机制简介。
42 1
宜搭详情页面URL设置
宜搭自定义详情页跳转问题
宜搭详情页面URL设置
|
11月前
|
机器人 SEO
SAP 电商云 Spartacus UI 根据 url 设置 site context 的具体例子
SAP 电商云 Spartacus UI 根据 url 设置 site context 的具体例子
|
JSON 前端开发 安全
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
238 0
|
前端开发 JavaScript 关系型数据库
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
618 0
|
Web App开发 搜索推荐 开发者
Flask 路由处理 URL 路径末尾带斜线或不带斜线机制
Flask 路由处理 URL 路径末尾带斜线或不带斜线机制
248 0
|
CDN
CDN设置防盗链及使用鉴权功能——鉴权URL控制台生成
CDN设置防盗链及使用鉴权功能——鉴权URL控制台生成自制脑图
308 0
CDN设置防盗链及使用鉴权功能——鉴权URL控制台生成
|
XML JavaScript 前端开发
loadrunner 脚本录制-录制选项设置HTML-based URL-based Script
loadrunner 脚本录制-录制选项设置HTML-based URL-based Script
88 0