简介
本文档提供关于 SMH SDK 配置自定义 DNS 的说明。
自定义 DNS
一般用来接入 HTTP DNS,实现域名防劫持,DNS 解析加速的效果。
通过 SMHService 的静态成员 dnsFetch 进行 DNS 设置。
SMHService.dnsFetch = QCloudHttpClient.QCloudDnsFetch { hostname ->//根据hostname获取对应的IP列表//返回对应的InetAddress列表return inetAddressList;}}
接入 HTTP DNS
以下使用腾讯云 HTTP DNS 作为示例。
1. 初始化腾讯云 HTTP DNS SDK,请参见 腾讯云 HTTP DNS 官方文档。
2. 通过 SMHService.dnsFetch 配置腾讯云 HTTP DNS,实现 SMH SDK 接入 HTTP DNS。
SMHService.dnsFetch = QCloudHttpClient.QCloudDnsFetch { hostname ->val ips = MSDKDnsResolver.getInstance().getAddrByName(hostname)val ipArr = ips.split(";")if (ipArr.isEmpty()) {emptyList<InetAddress>()} else {val inetAddressList: MutableList<InetAddress> = ArrayList(ipArr.size)for (ip in ipArr) {if ("0" == ip) {continue}try {val inetAddress = InetAddress.getByName(ip)inetAddressList.add(inetAddress)} catch (ignored: UnknownHostException) {}}inetAddressList}}