本文档介绍如何通过 HTTPDNS SDK 为 软件定义解析 AnyMatch 功能 添加自定义标识。
您可以在 1.0.22 或之后的 Android SDK 中为软件定义解析 AnyMatch 功能添加自定义标识。
AbsOptionalHttpDnsDepend
抽象类。import AbsOptionalHttpDnsDepend;
AbsOptionalHttpDnsDepend
抽象类,并重写 getExtraHeaders
方法或 getExtraQueryParams
方法。然后,您需要在返回值中传入自定义标识。说明
getExtraHeaders
方法通过请求头发送自定义标识;getExtraQueryParams
方法通过查询参数发送自定义标识。您可以任意选择其中一种方法。Am-Tag
中添加多个自定义标识。匹配顺序是从左到右。例如,在 headers.put("Am-Tag", Arrays.asList("hebei", "shijiazhuang"))
中,匹配顺序是 hebei
、shijiazhuang
。public class TestHttpDnsDepend extends AbsOptionalHttpDnsDepend implements IHttpDnsDepend { ... // 通过请求头发送自定义标识 @Override public Map<String, List<String>> getExtraHeaders() { Map<String, List<String>> headers = new HashMap<>(); headers.put("Am-Tag", Arrays.asList("aaa", "bbb")); headers.put("Am-Id", Arrays.asList("123")); return headers; } // 通过查询参数发送自定义标识 @Override public Map<String, List<String>> getExtraQueryParams() { Map<String, List<String>> querys = new HashMap<>(); querys.put("amtag", Arrays.asList("aaa", "bbb")); querys.put("amid", Arrays.asList("123")); return querys; } }
您可以在 0.13.1 或之后的 iOS SDK 中为软件定义解析 AnyMatch 功能添加自定义标识。
初始化 iOS SDK 时,在调用 dnsResolverColdStart 前调用 setHttpDnsCustomHeaderBlock
或 setHttpDnsCustomParamBlock
发送自定义标识。
说明
setHttpDnsCustomHeaderBlock
方法通过请求头发送自定义标识;setHttpDnsCustomParamBlock
方法通过查询参数发送自定义标识。您可以任意选择其中一种方法。Am-Tag
中添加多个自定义标识。匹配顺序是从左到右。例如,在 @"Am-Tag" : @[@"hebei", @"shijiazhuang"]
中,匹配顺序是 hebei
、shijiazhuang
。// 通过请求头发送自定义标识 [[TTDnsResolver shareInstance] setHttpDnsCustomHeaderBlock:^NSDictionary * (NSArray<NSString*>* hosts) { return @{@"Am-Tag" : @[@"aaa", @"bbb"], @"Am-Id": [NSNumber numberWithLongLong:1234567]}; }]; // 通过查询参数发送自定义标识 [[TTDnsResolver shareInstance] setHttpDnsCustomParamBlock:^NSDictionary * (NSArray<NSString*>* hosts) { return @{@"amtag" : @[@"aaa", @"bbb"], @"amid": [NSNumber numberWithLongLong:1234567]}; }];