全部產品
Search
文件中心

HTTPDNS:喜好設定介面

更新時間:Jul 13, 2024

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

取值如下:

  • AlicloudHttpDNS_IPTypeV4 (IPv4)

  • AlicloudHttpDNS_IPTypeV6 (IPv6)

  • AlicloudHttpDNS_IPTypeV64 (IPv4 + IPv6)

是否允許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

取值如下:

  • YES:網路切換時就會重新整理緩衝中的所有網域名稱。

  • NO:網路切換時,SDK僅會刪除所有網域名稱的緩衝,只有當下次訪問網域名稱時,才會去重新解析。

設定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,實現流程如下:

  1. 首先,使用者在雲解析控制台將網域名稱對應IP修改為ip2,此時在HTTPDNS服務端會立即擷取到此變更資訊,並清除服務端該網域名稱的ip1緩衝。

  2. 使用者手動調用此介面,清空xxx.com網域名稱的本機快取。

  3. App端清空緩衝後的下一次請求,會使得服務端重新請求權威伺服器,擷取最新解析IP地址ip2,從而使前端解析結果立即生效為ip2。

重要

  • 該功能僅適用於SDK V2.0.4及以上版本。

  • 清除操作會同步清除記憶體緩衝和沙箱緩衝(非同步)。

介面定義

- (void)cleanHostCache:(NSArray <NSString *>*)hostArray;

參數說明

參數

類型

是否必填

說明

hostArray

NSArray <NSString *>*

需要清除的host網域名稱數組。如果需要清空全部資料,傳nil或者空數組即可。