HttpDNS lib 庫 iOS版本
HTTPDNSLib-for-iOS
DNSCache庫使用說明書
-
導入LibDnsCache.a, WBDNSCache.h. (如果愿意,也可以將DNSCache整個工程導入)
-
在Targets-》Build Phases-》LinkBinaryWithLibraries 加入libDNSCache.a. httpDNSLib依賴libsqlite3.dylib, SystemConfiguration.framework, CoreTelephony.framework. 請同時加入以上依賴庫。
-
確定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"];