sdk final

This commit is contained in:
robin
2026-03-05 16:53:59 +08:00
parent a10f3f3740
commit 491ade1bc3
44 changed files with 1595 additions and 960 deletions

View File

@@ -1,24 +1,30 @@
//
// HttpdnsRequest.h
// NewHttpDNS
// TrustHttpDNS
//
// Created by xuyecan on 2024/5/19.
// Copyright © 2024 trustapp.com. All rights reserved.
// Copyright ツゥ 2024 trustapp.com. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
#ifndef NewHTTPDNSQUERYIPTYPE
#define NewHTTPDNSQUERYIPTYPE
#ifndef NEWHTTPDNSQUERYIPTYPE
#define NEWHTTPDNSQUERYIPTYPE
typedef enum {
NewHttpDNS_IPTypeV4 = 0, //ipv4
NewHttpDNS_IPTypeV6 = 1, //ipv6
NewHttpDNS_IPTypeV64 = 2, //ipv4 + ipv6
NewHttpDNS_IPTypeDual = 2, //both
} NewHttpDNS_IPType;
// Compatibility aliases
typedef NewHttpDNS_IPType TrustHttpDNS_IPType;
#define TrustHttpDNS_IPTypeV4 NewHttpDNS_IPTypeV4
#define TrustHttpDNS_IPTypeV6 NewHttpDNS_IPTypeV6
#define TrustHttpDNS_IPTypeV64 NewHttpDNS_IPTypeDual
typedef NS_OPTIONS(NSUInteger, HttpdnsQueryIPType) {
HttpdnsQueryIPTypeAuto NS_SWIFT_NAME(auto) = 0,
HttpdnsQueryIPTypeIpv4 = 1 << 0,
@@ -30,27 +36,27 @@ typedef NS_OPTIONS(NSUInteger, HttpdnsQueryIPType) {
@interface HttpdnsRequest : NSObject
/// 需要解析的域名
/// 髴€隕∬ァ」譫千噪蝓溷錐
@property (nonatomic, copy) NSString *host;
/// 解析超时时间对于同步接口即为最大等待时间对于异步接口即为最大等待回调时<EFBFBD><EFBFBD>?
/// 默认<EFBFBD><EFBFBD>?秒,取值必须在0.5<EFBFBD><EFBFBD>?- 5秒之<EFBFBD><EFBFBD>?
/// 隗」譫占カ<EFBFBD>慮譌カ髣エ<EFBFBD>悟ッケ莠主酔豁・謗・蜿」<EFBFBD>悟叉荳コ譛€螟ァ遲牙セ<EFBFBD>慮髣エ<EFBFBD>悟ッケ莠主シよュ・謗・蜿」<EFBFBD>悟叉荳コ譛€螟ァ遲牙セ<EFBFBD>屓隹<EFBFBD>慮髣?
/// 鮟倩ョ、蛟?遘抵シ悟叙蛟シ蠢<EFBDBC>。サ蝨ィ0.5?- 5遘剃ケ矩<EFBFBD>?
@property (nonatomic, assign) double resolveTimeoutInSecond;
/// 查询IP类型
/// 默认为HttpdnsQueryIPTypeAuto此类型下SDK至少会请求解析ipv4地址若判断到当前网络环境支持ipv6则还会请求解析ipv6地址
/// HttpdnsQueryIPTypeIpv4只请求解析ipv4
/// HttpdnsQueryIPTypeIpv6只请求解析ipv6
/// HttpdnsQueryIPTypeBoth不管当前网络环境是什么会尝试同时请求解析ipv4地址和ipv6地址这种用法通常需要拿到结果之后自行判断网络环境决定使用哪个结<EFBFBD><EFBFBD>?
/// 譟・隸「IP邀サ蝙<EFBFBD>
/// 鮟倩ョ、荳コHttpdnsQueryIPTypeAuto<EFBFBD>梧ュ、邀サ蝙倶ク具シ郡DK閾ウ蟆台シ夊ッキ豎りァ」譫進pv4蝨ー蝮€<EFBFBD>瑚凶蛻、譁ュ蛻ー蠖灘燕鄂醍サ懃識蠅<EFBFBD>髪謖pv6<EFBFBD><EFBFBD>霑倅シ夊ッキ豎りァ」譫進pv6蝨ー蝮€
/// HttpdnsQueryIPTypeIpv4<EFBFBD>悟宵隸キ豎りァ」譫進pv4
/// HttpdnsQueryIPTypeIpv6<EFBFBD>悟宵隸キ豎りァ」譫進pv6
/// HttpdnsQueryIPTypeBoth<EFBFBD>御ク咲ョ。蠖灘燕鄂醍サ懃識蠅<EFBFBD>弍莉€荵茨シ御シ壼ー晁ッ募酔譌カ隸キ豎りァ」譫進pv4蝨ー蝮€蜥景pv6蝨ー蝮€<EFBFBD>瑚ソ咏ァ咲畑豕包シ碁€壼クク髴€隕∵響蛻ー扈捺棡荵句錘閾ェ陦悟愛譁ュ鄂醍サ懃識蠅<EFBFBD><EFBFBD>螳壻スソ逕ィ蜩ェ荳ェ扈捺<EFBFBD>?
@property (nonatomic, assign) HttpdnsQueryIPType queryIpType;
/// SDNS参数,针对软件自定义解析场景使用
/// SDNS蜿よ焚<EFBFBD>碁宙蟇ケ霓ッ莉カ閾ェ螳壻ケ芽ァ」譫仙惻譎ッ菴ソ逕ィ
@property (nonatomic, copy, nullable) NSDictionary<NSString *, NSString *> *sdnsParams;
/// 缓存Key针对软件自定义解析场景使用
/// 郛灘ュ婁ey<EFBFBD>碁宙蟇ケ霓ッ莉カ閾ェ螳壻ケ芽ァ」譫仙惻譎ッ菴ソ逕ィ
@property (nonatomic, copy, nullable) NSString *cacheKey;
/// 请求所属的账号ID用于在多账号场景下定位实例
/// 隸キ豎よ園螻樒噪雍ヲ蜿キID<EFBFBD>檎畑莠主惠螟夊エヲ蜿キ蝨コ譎ッ荳句ョ壻ス榊ョ樔セ<EFBFBD>
@property (nonatomic, assign) NSInteger accountId;
- (instancetype)initWithHost:(NSString *)host queryIpType:(HttpdnsQueryIPType)queryIpType;