https://github.com/aliyun/alicloud-android-demo.git
sni场景 就是 server name Indication 场景
选择里面的 httpdns_android_demo 打开MainActivity。
先看看普通请求,
从这例子不难看出,阿里的demo首先是创建一个url连接,获取host
host就是不包含http 的域名(比如 s.taobao.com )然后调用通过sdk中的 String ip = httpdns.getIpByHostAsync(url.getHost()) 也就是通过阿里自己的http请求查询这个host对应的ip地址,如果查询成功,那么HttpURLConnection会被重新创建,而且是通过ip进行创建,另外为了不丢失域名,所以这里做了一个操作就是设置请求头 "Host"
也就是调用 conn.setRequestProperty("Host", url.getHost())
整个过程就是通过 域名查询ip,然后通过ip进行请求的操作,
但是这个业务逻辑本身是dns自身做的事情,现在已经绕过了,直接交给阿里的http dns服务器进行操作。
不过不管怎么操作,这httpdns自身还是得通过运营商的dns进行请求,当然他们自己的也可以做缓存,或者ip地址可靠也可以直接访问比如
http://203.107.1.33/100000/d?host=www.aliyun.com
他们是这样说的
考虑到服务IP防攻击之类的安全风险,为保障服务可用性,HTTPDNS同时提供多个服务IP,当某个服务IP在异常情况下不可用时,可以使用其它服务IP进行重试。上述文档中使用的 203.107.1.33 是其中一个服务IP。
HTTPDNS提供 Android SDK 和 iOS SDK ,两个平台的SDK中已经做了多IP轮转和出错重试的策略,通常情况下,建议开发者直接集成SDK即可,不需要自己手动调用HTTP API接口。
如果使用场景特殊,无法使用SDK,需要直接访问HTTP API接口,请提 工单 联系我们,我们将根据您的具体使用场景,为您提供多个服务IP和相关的安全建议。
具体参考 https://help.aliyun.com/document_detail/52679.html?spm=a2c4g.11186623.2.21.11321d22lF9Vbp#1.1 访问方式
再看看https
处理重定向
预解析域名
顾名思义,在请求某个东西之前先请求,比如app刚打开的时候。
这样通过sdk进行查询就会直接从缓存中取出。
降级解析
降级解析就是不用他们的dns,使用运营商的。
处理webview
其他demo
参考
https://help.aliyun.com/document_detail/30143.html
okhttp接入httpdns最佳实践
https://help.aliyun.com/document_detail/52008.html
简单记录集成阿里云HTTPDNS服务的过程
以上来自阿里云HTTPDNS文档。
HTTPDNS是移动研发平台提供的服务,请参考 EMAS 快速入门 开通服务。
按照以上官方文档配置,在同步工程后,会报错
修改如下
https://github.com/milovetingting/Samples
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)