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)

三、结语

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

目录
相关文章
|
6月前
|
测试技术
Cypress如何设置全局URL?
Cypress如何设置全局URL?
101 0
|
3月前
|
网络协议
【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
【Azure 应用服务】探索在Azure上设置禁止任何人访问App Service的默认域名(Default URL)
|
3月前
|
API
【Azure API 管理】Azure API Management在设置 Policy时,如何对URL进行解码呢? 使用 HttpUtility.UrlDecode 出错
【Azure API 管理】Azure API Management在设置 Policy时,如何对URL进行解码呢? 使用 HttpUtility.UrlDecode 出错
|
6月前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
208 3
|
6月前
|
Python
URL分发机制简介
URL分发机制简介。
61 1
宜搭详情页面URL设置
宜搭自定义详情页跳转问题
宜搭详情页面URL设置
|
JSON 前端开发 安全
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
ajax中实现访问url已阅即焚的解决方案(url动态参数、变量加密、常量不变、php加密解密、API访问验证方式)
283 0
|
前端开发 JavaScript 关系型数据库
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
744 0
|
Web App开发 搜索推荐 开发者
Flask 路由处理 URL 路径末尾带斜线或不带斜线机制
Flask 路由处理 URL 路径末尾带斜线或不带斜线机制
299 0
|
CDN
CDN设置防盗链及使用鉴权功能——鉴权URL控制台生成
CDN设置防盗链及使用鉴权功能——鉴权URL控制台生成自制脑图
328 0
CDN设置防盗链及使用鉴权功能——鉴权URL控制台生成

热门文章

最新文章