全部產品
Search
文件中心

HTTPDNS:設定降級策略相關介面

更新時間:Jul 13, 2024

設定降級策略

設定降級策略,您可以定義規則降級為原生DNS解析方式。

重要

降級策略,只負責哪些網域名稱需要降級,對於SDK來說,就是哪些網域名稱直接返回空的解析結果。具體的降級請求操作,是在SDK返回後由業務程式碼完成的(和SDK沒有解析成功的邏輯一致)。SDK本身不會使用Local DNS進行解析。

介面定義

void setDegradationFilter(DegradationFilter filter);
public interface DegradationFilter {
    /**
     * 降級過濾器
     *
     * @param hostName 當前的目標網域名稱(如www.aliyun.com),您可以針對網域名稱進行降級過濾
     * @return 是否降級走原生DNS邏輯
     */
    boolean shouldDegradeHttpDNS(String hostName);
}

參數說明

參數

類型

是否必填

說明

filter

DegradationFilter

降級代理

程式碼範例

// httpdns為初始化擷取的服務執行個體
DegradationFilter filter = new DegradationFilter() {
            @Override
            public boolean shouldDegradeHttpDNS(String hostName) {
                // 此處可以自訂降級邏輯,例如www.aliyuno.com不使用HttpDNS解析
                // 參照HttpDNS API文檔,當存在中間HTTP代理時,應選擇降級,使用Local DNS
                return hostName.equals("www.aliyuno.com");
            }
        };
// 將filter傳進httpdns,解析時會回調shouldDegradeHttpDNS方法,判斷是否降級
httpdns.setDegradationFilter(filter);

設定降級過濾器

針對網域名稱進行降級過濾。

介面定義

    boolean shouldDegradeHttpDNS(String hostName);

參數說明

參數

類型

是否必填

說明

hostname

String

當前的目標網域名稱(如www.aliyun.com),您可以針對網域名稱進行降級過濾。

return

Boolean

是否降級走原生DNS邏輯。

程式碼範例

DegradationFilter filter = new DegradationFilter() {
            @Override
            public boolean shouldDegradeHttpDNS(String hostName) {
                // 此處可以自訂降級邏輯,例如www.aliyuno.com不使用HttpDNS解析
                // 參照HttpDNS API文檔,當存在中間HTTP代理時,應選擇降級,使用Local DNS
                return hostName.equals("www.aliyuno.com");
            }
        };