HTTPDNS-ios 接入指南|学习笔记

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 快速学习 HTTPDNS-ios 接入指南

开发者学堂课程【阿里云HTTP DNS使用教程: HTTPDNS-ios  接入指南】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/408/detail/5250


HTTPDNS-ios 接入指南


内容简介

一、 SDK  下载

二、 快速开始

三、 iOS SDK 手册


一、 SDK  下载

HTTPDNS 的  iOS 的接入指南,点击管理控制台进入到管理页面,可以看到这里有个 Account  lD:123252在后续的这个配置里面是一个很关键的参数 

SDK 点击进入到下载 SDK 的列表这里找到 HTTPDNS 里面有 iOS 跟安卓版本,如果你要接入也有快速的指南入口直接进入到 iOS SDK 手册,这里面也包括安卓的一些手册和一些其他的一些文档的说明回到这里也可以通过如何使用 HTTPDNS 来接入进来。


二、 快速开始图片40.png

快速开始

1. 开通服务

HTTPDNS 服务开通:链接

2. 控制台添加域名

HTTPDNS 控制台:链接

通过控制台可以获得 HTTPDNS 服务的 Account ID ,并能够添加域名。

控制台.上添加的域名,1分钟后会在 HTTPDNS 服务端生效。

3.使用 HTTPDNS 解析域名

使用 HTTPDNS 解析域名,训求示例:

htp://203.107.1.33100000/d?host= www allyun.com

HTTPDNS 服务 IP 列表和 API 接口详细规范可参考API接口文档。

为保障服务可用性,HTTPDNS 同时提供多个服务 IP ,当某个服务 IP 在 异常情况下不可用时,可以使用其它服务 IP进行重试。

4.客户端集成 HTTPDNS

通过 HTTPDNS 获得域名的IP地址后,客户端可以使用这个 IP 发送业务请求,HTTP 请求头的 Host 字段需改为原来的城名,以下是一一个简单的示例

1. /1比如您要访 tttp://ww. allyun. com/, 假 ww.allyun.com 域名的解析结果是140.205.62.8.

通用参考

2. /一般情况下,使用 IP 的方式进行访问时,需要设置 HTTP 请求头的 HOST 字段为原来的域名。

3.String fullPath= . http://40 295.62.8/";

4.String host= . "ww allyun.com";

5.URL url= . new URL (fullPath);

6.HttpURLConnection conn =. (HttpuRLConnection) url openConnection();

7.//设置 HTTP 请求头 HOST 字段为 w.allyun.com

8。conn. setRequestProperty("Host", host);

集成 HTTPDNS 时,请仔理肉读 AP 楼口文档。其中包括相关的 SDK 和使用 Demo. 可参考文档中的“快速接入“章节。


三、 iOS SDK手册

1.1手动集成 SDK

l 可以通过上述 GitHub demo 获取 HTTPDNS SDK

l 可以通过访问移动服务应用程序列表页

(ttps://ams.console.aliyun.com/download 若您第一次访问,请创建 App ),勾选下图红框中的 Httpdn 组件获取Sdk。

1.2Pod 集成

l 指定 Master 仓库和阿里云仓库:

1. source 'https://github. com/CocoaPods/Specs.git'

2. source . https://github . com/aliyun/aliyun-specs.git' 

●添加依赖:

1. pod 'AlicloudHTTPDNS', 'm> 1.5.0

(>为模糊指定版本号方式,~> 1.5.0表明引用版本位于1.5.0 <= version < 1.6之间的最新版本 SDK ,用户可参考 Poafle Syntax Reterence ,根据

2.应用程序配置与初始化

HTTPDNS ios SDK,自v1.1.0版本已全面支持苹果 ATS 要求, 无需在 Info.plist 中配置ATS。

2.1依赖

系统公共库:

●libresolv.tbd

●CoreTelephony.framework

●SystemConfiguration.framework

|AMS 組件包

●UTDID.framework

●AlicloudUtils.framework

2.2获取服务实例

HTTPDNS IoS SDK 以全局 service 实例的方式提供城名解析服务,您可以通过以下方式获取实例:

1. HttpDnsService*httpdns. [HttpDnsService sharedInstance];

2. /设置  AccoutID , 当您开通 HTTPDNS 服务时,您可以在控制台获取到您对应的 Accout ID 信息

3. [httpdns setAccountID:*****]; 

2.3设置预解析域名

初始化程序时,可以选择性地预先向 HTTPDNS SDK 中注册您后续可能会使用到的域名,以便 SDK 提前解析, 减少后续解析域名时请求的时延。

调用以下接口:

1. NSArray * hosts . [[NSArray alloc ] initWithobjects:@"ww. taobao.com", @ " www. aliyun.com", ni1];

2. [httpdns setPreResolveHosts :hosts];

3. 注意事项 

4.1 HTTP 请求头 HOST 字段设置

标准的 HTTP 协议中服务端会将 HTTP 请求头 HOST 字段的值作为请求的域名信息进行解析。使用 HTTPDNS 后, 您可能需要将 HTTP 请求 URL 中的 HOST 字段替换为 HTTPDNS 解析获得的 IP ,这时标准的网络库会将您的 IP 赋值给 HTTP 请求头的HOST 字段,进而导致服务端的解析异常(服务端认可的是您的域名信息, 而非 IP 信息)。

4.2 COOKIE 字段

部分网络库支持 COOKIE 的自动存储管理,当您使用 HTTPDNS 进行 IP URL 请求时,部分网络库会将您 URL 中的 IP 信息作为 COOKIE 对应的域名信息进行存储

管理(而非 HTTP 请求头 HOST 字段信息)。进而造成 COOKIE 管理与使用上的困扰,因此您需要关闭 COOKIE 的自动管理功能(默认关闭) .

4.4代理情况下的使用

当存在中间 HTTP 代理时,客户端发起的请求中请求行会使用绝对路径的 URL  ,在您开启 HTTPDNS 并采用 IP URL 进行访问时,中间代理将识别您的 IP 信息并将其作为真实访问的 HOST 信息传递给目标服务器,这时目标服务器将无法处理这类无真实 HOST 信息的 HTTP 请求。

移动网关提供了 x-Online-Host 的私有协议字段来解决这个问题,比如:

1.目标URL: http://www. aliyun. com/product/oss/

2.通过 HTTPDNS 解析出来的 www. aliyun. Com 的 IP: 1.1.1.1

3.代理: 10.0.0.172:80

5.您的 HTTP 请求头:

7,GET http://1.1.1.1/product/oss/ HTTP/1.1

#通过代理发起的 HTTP 请求头,请求行是一个绝对路径

8. Host: www. aliyun. com

#这个 Header 会被代理网关忽略,代理网关会使用请求行绝对路径中的 host 字段作为源站

的 host ,即1.1.1.1

X-Online-Host: www. aliyun. com

头部以获取真买的 Host 信息

HTTPDNS 场景下兼容 IPv6-only 网络环境需要注意的细节:

当您使用 IP 形式的 URL 进行网络请求时, IPv4 与 IPv6 的 IP 地址使用方式略有不同:

●IPv4: http://1.1.1.1/path

tpttpt//2001:db8.c000221:/path

相关文章
|
域名解析 缓存 网络协议
HTTPDNS-快速开始|学习笔记
快速学习HTTPDNS-快速开始
197 0
HTTPDNS-快速开始|学习笔记
|
开发者 网络协议
HTTPDNS技术支持方案|学习笔记
快速学习HTTPDNS技术支持方案
141 0
HTTPDNS技术支持方案|学习笔记
|
域名解析 网络协议 开发者
HTTPDNS-管理控制台使用|学习笔记
快速学习 HTTPDNS-管理控制台使用
165 0
HTTPDNS-管理控制台使用|学习笔记
|
域名解析 JSON API
HTTPDNS 的 API 的说明|学习笔记
快速学习 HTTPDNS 的 API 的说明
241 0
HTTPDNS 的 API 的说明|学习笔记
|
存储 网络协议 API
HTTPDNS-ios 接入指南|学习笔记
快速学习 HTTPDNS-ios 接入指南
263 0
HTTPDNS-ios  接入指南|学习笔记
|
域名解析 网络协议 Java
HTTPDNS-Android 接入指南 |学习笔记
快速学习 HTTPDNS-Android 接入指南
595 0
HTTPDNS-Android  接入指南 |学习笔记
|
域名解析 缓存 网络协议
HTTPDNS-最佳实践|学习笔记
快速学习 HTTPDNS-最佳实践
467 0
|
开发工具 iOS开发
EMAS中如何修改ios上的这个允许通知
EMAS中如何修改ios上的这个允许通知
88 1
|
API 开发工具 iOS开发
iOS 接入指南|学习笔记
快速学习 iOS 接入指南|
238 0
iOS 接入指南|学习笔记
|
存储 图形学 数据安全/隐私保护
零基础教你Unity接入IOS原生本地推送
从新建项目开始保姆级教程,教你Unity接入IOS原生本地推送。
819 0
零基础教你Unity接入IOS原生本地推送