Retrofit(Okhttp)Dns解析服务器域名异常时尝试使用服务器IP访问
小公司,免费的Dns解析,有几率遇到域名解析异常(UnknownHostException),但通过IP访问又不方便(比如热备切换后,若IP变化,APP会直接连不上)。这里提供一种域名+IP的解析方法。
Okhttp其实已经提供了Dns解析方法
ApiDns
class ApiDns private constructor() : Dns {override fun lookup(hostname: String): List<InetAddress> {return try {//尝试系统默认解析Dns.SYSTEM.lookup(hostname)} catch (e: UnknownHostException) {//这里的hostname.contains,包含的是服务器域名if (hostname.contains("xxxx.com")) {"[DNS] $hostname 解析异常,尝试使用IP = $SERVER_IP".errorLog()InetAddress.getAllByName(SERVER_IP).asList()} else {throw e}}}companion object {// 这个值可以在网络正常时从服务器更新下来,SP、MMKV、SQL等保存在本地,随时更新private const val SERVER_IP = "47.xxx.xxx.88"val INSTANCE: ApiDns by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { ApiDns() }}
}
然后在Okhttp里引用就行了
Retrofit.Builder().baseUrl(url).client(OkHttpClient.Builder().apply {// 主要是这行dns(ApiDns.INSTANCE)connectTimeout(20, TimeUnit.SECONDS)readTimeout(20, TimeUnit.SECONDS)writeTimeout(20, TimeUnit.SECONDS)addInterceptor(HttpLoggingInterceptor { message ->takeIf { AppUtils.isAppDebug() }?.let { message.networkLog() }}.apply { level = HttpLoggingInterceptor.Level.BODY })retryOnConnectionFailure(true)}.build()).addConverterFactory(ScalarsConverterFactory.create()).addConverterFactory(GsonConverterFactory.create()).build().create(ApiService::class.java)
原帖地址,转载请注明:https://blog.csdn.net/hx7013/article/details/111939812
Retrofit(Okhttp)Dns解析服务器域名异常时尝试使用服务器IP访问相关推荐
- DNS解析-连接域名与服务器IP
目录 一.DNS解析-连接域名与服务器IP (一)前言 (二)准备工作 1.腾讯云地址:腾讯云 产业智变·云启未来 - 腾讯 2.腾讯云账号,可以用微信扫码登录 (三)DNS解析 1.进入腾讯云控制台 ...
- 使用IPv6 DNS解析IPv6域名(不必修改hosts文件)
原文地址为: 使用IPv6 DNS解析IPv6域名(不必修改hosts文件) 很多网站,例如google,都是IPv4和IPv6双线接入的,www.google.com解析对应许多个IP,其中IPv4 ...
- 小程序修改服务器域名多久生效,小程序 服务器域名配置多久生效
小程序 服务器域名配置多久生效 内容精选 换一换 依照配置并导入样例工程中导入和修改样例后,即可在开发环境中,右击"JDBCExample.java",选择"Run 'J ...
- 为啥GE云盒老显示服务器出现异常,ge云盒服务器出现异常
ge云盒服务器出现异常 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 远程登录 ...
- 主服务器连接异常帮助修复,LOL服务器连接异常怎么解决
LOL英雄联盟提示"服务器连接异常,即将退出,请重新连接游戏",对此该如何解决呢?下面是学习啦小编收集整理的LOL服务器连接异常怎么解决,希望对大家有帮助~~ LOL服务器连接异常 ...
- openwt dns 解析部分域名出错问题。
背景: 公司项目更换访问域名导致网络访问异常,nds设置都没有问题. 问题描述 能ping 百度等外网地址就是ping不了服务的域名,并且任何的内网地址ip地址都可ping通.同时如果设备在外网又是可 ...
- 本地服务器域名位置,怎么查看本地服务器域名服务器地址
怎么查看本地服务器域名服务器地址 内容精选 换一换 公网域名解析是基于Internet网络的域名解析过程,可以把人们常用的域名(如www.example.com)转换成用于计算机连接的IP地址(如1. ...
- Nginx 多域名多网站绑定及禁止IP访问
lnmp 服务器架设好,配置nginx,实现多个网站分别绑定各个域名 这里以域名:www.mysite.com为例 1.在/usr/local/nginx/conf/vhost文件夹中创建mysite ...
- 常见的DNS记录类型有哪些?如何查询DNS解析记录?
当搭建一个新网站时,DNS查询工具对查询网站DNS解析记录方面很有帮助.除了在设置新网站时有用外,正确的DNS对于更新现有网站的记录以及检查邮件服务器(如公司内部邮件网络)的设置也是必不可少的. DN ...
- cmd显示服务器对区域没有权威,查询dns解析服务器地址cmd命令
查询dns解析服务器地址cmd命令 内容精选 换一换 一次完整的HTTP请求包括域名解析.建立TCP连接.发起请求.服务器接收到请求进行处理并返回处理结果.浏览器对HTML代码进行解析并请求其他资源, ...
最新文章
- 贝聊运维自动化体系演化
- Applese 走方格
- Java关于 class类的基础方法
- Java8 新特性简介
- 【开源项目】基于C++使用ffmpeg和QT开发播放器
- beautifulsoup获取属性_Python爬虫常用模块:BeautifulSoup
- 6折入股蚂蚁金服?巨人网络如此回应
- max6675一直读0_女儿读完我要收藏起来的英文杂志,它让0~15岁孩子阅读无缝对接!...
- mint-UI上拉加载下拉刷新和fastclick冲突问题解决
- Anaconda3创建、删除虚拟环境(win10)
- php 小写数字转大写,php 小写数字怎么转大写
- jQuery中id包含特殊字符,以及包含变量时处理。
- 金蝶与旺店通集成解决方案(金蝶为主)
- 计算机网络语音传输杂音回音,Win10系统中QQ语音有回音噪音该如何解决?
- Pygame实战之外星人入侵NO.9——消灭外星人
- Python读取键盘输入到一维列表及二维列表
- matlab算sma,如何计算简单移动平均线(SMA)
- 机器学习面试必考面试题汇总—附解析
- 356 次小生成树(求解最近公共祖先优化)
- 一个网站一级域名已经备案,二级域名还要不要备案啊?
热门文章
- 网易互娱游戏研发工程师笔试
- python极速入门(适合有基础)
- Kafka配置broker映射错误报错Discovered coordinator xxx rack: null
- 语音数字信号处理技术应用 --- 创新点头脑风暴
- Spring 源码解析 七(aop )
- java你好代码_Java 基础——1 向Java世界说你好
- 信息安全技术国家相关标准一览表
- python求解函数偏导数sympy
- CapstoneCS5211,CS5212,CS5256,CS5811,CS5288,……型号大全
- python程序下载腾讯企业邮箱附件_python批量下载邮件附件