HttpDNS lib 库 iOS版本。
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md

README.md

HTTPDNSLib-for-iOS

DNSCache库使用说明书

目前我们的服务器还不能支持所有的域名,所以代码里有白名单来限制域名。现在还不建议大家用在商用项目里,仅做学习交流用。

  1. 导入LibDnsCache.a, WBDNSCache.h. (如果愿意,也可以将DNSCache整个工程导入)

  2. 在Targets-》Build Phases-》LinkBinaryWithLibraries 加入libDNSCache.a. httpDNSLib依赖libsqlite3.dylib, SystemConfiguration.framework, CoreTelephony.framework. 请同时加入以上依赖库。

  3. 确定Targets-》BuildingSetting-》SearchPaths-》Library Search Path 可以搜索到正确的库文件。 注意,库分为模拟器版本和真机版本,请确定自己导入的是正确的版本,或者库路径查找 能首先查到正确的版本,有时候能找到两个版本,系统会已第一个找到的版本为准,导致link错误。

4。建议在AppDelegate里(也就是尽可能早的时候)初始化 WBDNSCache库。 设置AppKey和版本,用于请求对应版本的配置参数 以下只是一个示例,如果需要从sina服务器拉取配置,需要申请自己的AppKey,否则请手动修改代码获取自己的配置。 [WBDNSCache setAppkey:@"ed3e6e90975f52876cd9d74a8e9e05d8" version:@"0.1"]; 设置配置参数服务器的URL [WBDNSCache setConfigServerUrl:@"http://api.weibo.cn/2/httpdns/config"]; 初始化库,期间会从参数服务器请求配置参数 [[WBDNSCache sharedInstance] initialize];

5.建议初始化后延时调用 预请求域名对应IP,提前从服务器拉取域名对应IP [[WBDNSCache sharedInstance]preloadDomains:@[@"http://ww4.sinaimg.cn", @"http://api.weibo.cn/"]];

6.然后就可以在任何地方调用 [[WBDNSCache sharedInstance] getDomainServerIpFromURL:url] 获取转换后Url 和 需要设置的host值。 这个函数拿到的是一个WBDNSDomainInfo 对象数组,一般来说 取第一个就可以了。 WBDNSDomainInfo.id 暂时没用。 WBDNSDomainInfo.url 已经替换好的URL, 客户端可以直接用它 请求资源。 WBDNSDomainInfo.host 客户端需要将这个host设置到HTTP的请求头里。 如果Host为@“” 代表不需要设置Host 以AFNetworking举例 [manager.requestSerializer setValue:WBDNSDomainInfo.host forHTTPHeaderField:@"Host"];