HTTPDNS本地日誌介面
本地日誌Log開關,上線時建議關閉。
介面定義
- (void)setLogEnabled:(BOOL)enable;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
enable | BOOL | 是 | 日誌開關 |
設定日誌輸出回調
該功能僅適用於SDK V1.6.20及以上版本。
介面定義
- (void)setLogHandler:(id<HttpdnsLoggerProtocol>)logHandler;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
logHandler | id<HttpdnsLoggerProtocol> | 是 | 設定日誌輸出回調。 |
設定網域名稱解析請求類型
設定HTTPDNS網域名稱解析請求的類型,若不調用該介面,預設為HTTP請求。
HTTP請求基於底層CFNetwork實現,不受ATS限制。
介面定義
- (void)setHTTPSRequestEnabled:(BOOL)enable;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
enable | BOOL | 是 | 取值如下: YES:HTTPS請求 NO:HTTP請求 |
設定持久化緩衝功能
持久化緩衝功能旨在提升首屏載入速度,但持久化緩衝會將上一次解析到的結果儲存到本地持久層,App重啟後,如果啟動持久化緩衝功能會優先從持久層解析結果,所以存在第一次使用的IP為到期IP的可能性,即TTL到期,但大多數情況下該IP依然可以正常使用。
如果商務服務器IP變化比較頻繁,建議謹慎接入該功能,以免對業務造成影響。
持久化緩衝僅影響第一次網域名稱解析結果,後續解析仍會請求HTTPDNS伺服器,並更新本機快取。
開啟此功能後,每次網路解析記錄,會更新到本機快取;App重啟後,首先載入本機快取到記憶體中。
介面定義
- (void)setCachedIPEnabled:(BOOL)enable;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
enable | BOOL | 是 | 取值如下: True:開啟 False:關閉 |
預解析介面
預先向HTTPDNS SDK中選擇性的註冊您後續可能會使用到的網域名稱,以便SDK提前解析,減少後續網域名稱解析時請求的時延。
介面定義
- (void)setPreResolveHosts:(NSArray *)hosts;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
hosts | NSArray | 是 | 預解析網域名稱列表 |
進階預解析
支援IPv4、IPv6組合的預解析方法。
如果需要開啟IPv6預解析,則需提前開啟IPv6開關。
介面定義
- (void)setPreResolveHosts:(NSArray *)hosts queryIPType:(AlicloudHttpDNS_IPType)ipType;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
hosts | NSArray | 是 | 預解析網域名稱列表 |
ipType | AlicloudHttpDNS_IPType | 是 | 取值如下:
|
是否允許HTTPDNS返回TTL到期網域名稱的IP
設定是否允許HTTPDNS返回TTL到期的網域名稱,建議設定為YES(預設為NO)。
當設定為YES時,SDK在即時返回到期IP的同時,依然會進行非同步更新以擷取最新的IP資訊。
當設定為NO時,假設已有某個網域名稱的緩衝,IP的TTL時間為60s,60s內調用getIpByHostAsync等非同步解析介面可以拿到緩衝結果;但是在60s之後,首次調用getIpByHostAsync等非同步解析介面會直接返回null,並且進行非同步網域名稱解析更新緩衝。
介面定義
- (void)setExpiredIPEnabled:(BOOL)enable;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
enable | BOOL | 是 | 是否返回TTL到期網域名稱。 YES:允許 NO:不允許 |
網路切換自動重新整理
設定網路切換時是否自動重新整理所有網域名稱解析結果,如果開啟此開關,在網路切換時,會自動重新整理所有網域名稱的解析結果,但會產生一定流量消耗。
WiFi、蜂窩、無網這三個狀態的切換算網路切換。
4G與3G切換不算網路切換。
SIM卡切換也不會單獨處理。
介面定義
- (void)setPreResolveAfterNetworkChanged:(BOOL)enable;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
enable | BOOL | 是 | 取值如下:
|
設定region節點
調用此介面後,會按照region更新服務IP。
該功能僅適用於SDK V1.18及以上版本。
如果調用此介面時,與上次設定的region相同或者5分鐘內重複設定不同的region時,不會進行服務IP的更新。
介面定義
- (void)setRegion:(NSString *)region;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
region | NSString | 是 | region為節點,設定海外region,用于海外服務地區選取項目,當前僅支援hk(中國香港節點)和sg(新加坡節點),填寫後返回當地的服務節點。 預設時,使用中國香港節點。 |
清空指定網域名稱緩衝
使用阿里雲網域名稱解析服務的使用者,調用該介面主動清除本機快取,可實現秒級網域名稱配置生效。 例如:假設網域名稱xxx.com,解析IP地址為ip1, 當ip1遭受攻擊,需要將流量遷移至ip2,實現流程如下:
首先,使用者在雲解析控制台將網域名稱對應IP修改為ip2,此時在HTTPDNS服務端會立即擷取到此變更資訊,並清除服務端該網域名稱的ip1緩衝。
使用者手動調用此介面,清空xxx.com網域名稱的本機快取。
App端清空緩衝後的下一次請求,會使得服務端重新請求權威伺服器,擷取最新解析IP地址ip2,從而使前端解析結果立即生效為ip2。
該功能僅適用於SDK V2.0.4及以上版本。
清除操作會同步清除記憶體緩衝和沙箱緩衝(非同步)。
介面定義
- (void)cleanHostCache:(NSArray <NSString *>*)hostArray;
參數說明
參數 | 類型 | 是否必填 | 說明 |
---|---|---|---|
hostArray | NSArray <NSString *>* | 是 | 需要清除的host網域名稱數組。如果需要清空全部資料,傳nil或者空數組即可。 |