全部产品
Search
文档中心

HTTPDNS:设置降级策略相关接口

更新时间:Sep 23, 2022

设置降级策略

设置降级策略,您可以定义规则降级为原生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");
            }
        };