有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

API 概览

API
描述
会话管理接口
QUIC 请求配置信息
请求任务管理接口
请求数据序列化接口
响应数据序列化接口


TQUICHTTPSessionManager


API
描述
manager
静态方法,构造 TQUICHTTPSessionManager
根据配置构造 TQUICHTTPSessionManager 实例,配置信息见 TQUICURLSessionConfiguration
根据 Url 构造 TQUICHTTPSessionManager 实例
GET
发起 GET 请求
POST
发起 POST 请求

manger

构造 TQUICHTTPSessionManager,使用默认 QUIC 配置。

+ (instancetype)manager

initWithSessionConfiguration

创建
TQUICHTTPSessionManager
实例,并传入 QUIC 配置信息。

- (instancetype)initWithSessionConfiguration:(nullable TQUICURLSessionConfiguration *)configuration
参数
描述
configuration
QUIC 请求配置,详细信息见:TQUICURLSessionConfiguration

initWithBaseURL

创建
TQUICHTTPSessionManager
实例,并传入 url,配置请求参数在此 url 为基础上添加。

- (instancetype)initWithBaseURL:(nullable NSURL *)baseURL;

- (instancetype)initWithBaseURL:(nullable NSURL *)baseURL

           sessionConfiguration:(nullable TQUICURLSessionConfiguration *)configuration;
参数
描述
baseURL
请求域名
configuration
QUIC 请求配置,详细信息见:TQUICURLSessionConfiguration

GET

创建 GET 请求。

- (nullable TQUICURLSessionDataTask *)GET:(NSString *)URLString

                               parameters:(nullable id)parameters

                                  headers:(nullable NSDictionary <NSString *, NSString *> *)headers

                          timeoutInterval:(NSTimeInterval)timeoutInterval

                         downloadProgress:(nullable TQUICURLSessionTaskDownloadProgressBlock)downloadProgress

                                  success:(nullable TQUICURLSessionTaskSuccess)success

                                  failure:(nullable TQUICURLSessionTaskFailure)failure
参数
描述
URLString
请求 Url
parameters
请求参数
headers
请求 Header 信息
timeoutInterval
连接超时时间
downloadProgress
下载进度回调
success
请求成功回调
failure
请求失败回调

POST

创建 POST 请求。

- (nullable TQUICURLSessionDataTask *)POST:(NSString *)URLString

                                parameters:(nullable id)parameters

                                   headers:(nullable NSDictionary <NSString *, NSString *> *)headers

                           timeoutInterval:(NSTimeInterval)timeoutInterval

                            uploadProgress:(nullable TQUICURLSessionTaskUploadProgressBlock)uploadProgress

                                   success:(nullable TQUICURLSessionTaskSuccess)success

                                   failure:(nullable TQUICURLSessionTaskFailure)failure
参数
描述
URLString
请求 Url
parameters
请求参数
headers
请求 Header 信息
timeoutInterval
连接超时时间
uploadProgress
上传进度回调
success
请求成功回调
failure
请求失败回调

TQUICURLSessionTaskSuccess

任务执行成功回调 block。
typedef void (^TQUICURLSessionTaskSuccess)(TQUICURLSessionTask *task, id _Nullable responseObject)
参数
描述
task
请求任务
responseObject
响应数据

TQUICURLSessionTaskFailure

任务执行失败回调 block。
typedef void (^TQUICURLSessionTaskFailure)(TQUICURLSessionTask * _Nullable task, NSError *error)
参数
描述
task
请求任务
error
错误信息

TQUICURLSessionManager

会话管理接口。
API
描述
根据配置构造实例
使用指定 NSURLRequest 参数发起请求
配置请求完成后的数据统计回调
设置接收响应结果回调 block

initWithSessionConfiguration

创建 TQUICURLSessionManager 实例,并传入 QUIC 配置信息。
- (instancetype)initWithSessionConfiguration:(nullable TQUICURLSessionConfiguration *)configuration
参数
描述
configuration
QUIC 请求配置

dataTaskWithRequest

使用指定 NSURLRequest 参数发起请求。
- (TQUICURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
                                  uploadProgress:(nullable TQUICURLSessionTaskUploadProgressBlock)uploadProgress
                                downloadProgress:(nullable TQUICURLSessionTaskDownloadProgressBlock)downloadProgress
                               completionHandler:(nullable TQUICURLSessionTaskCompletionHandler)completionHandler
参数
描述
request
请求配置,参考系统 NSURLRequest
uploadProgress
上传进度回调
downloadProgress
下载进度回调
completionHandler
请求完成回调

setTaskDidFinishCollectingMetricsBlock

配置请求完成后的数据统计回调。
- (void)setTaskDidFinishCollectingMetricsBlock:(nullable TQUICURLSessionTaskDidFinishCollectingMetricsBlock)block
参数
描述
block
请求完成数据统计回调

setTaskDidReceiveResponseBlock

设置接收响应结果回调 block。
- (void)setTaskDidReceiveResponseBlock:(nullable TQUICURLSessionTaskDidReceiveResponseBlock)block
参数
描述
block
接收到响应结果后的回调 block

TQUICURLSessionTaskDidReceiveResponseBlock

会话任务收到响应结果回调 block。
typedef void (^TQUICURLSessionTaskDidReceiveResponseBlock)(TQUICURLSession *session, TQUICURLSessionTask *task, NSURLResponse *response)
参数
描述
session
会话管理类
task
任务管理类
response
响应结果

TQUICURLSessionTaskDownloadProgressBlock

下载进度回调 block。

typedef void (^TQUICURLSessionTaskDownloadProgressBlock)(NSProgress *downloadProgress)
参数
描述
downloadProgress
下载进度

TQUICURLSessionTaskUploadProgressBlock

上传进度回调 block。

typedef void (^TQUICURLSessionTaskUploadProgressBlock)(NSProgress *uploadProgress)
参数
描述
uploadProgress
上传进度

QUICURLSessionTaskCompletionHandler

会话执行完成回调 block。
typedef void (^TQUICURLSessionTaskCompletionHandler)(NSURLResponse *response, id responseObject, NSError *error)
参数
描述
response
响应结果,参考系统 NSURLResponse
responseObject
响应数据
error
错误信息

TQUICURLSessionTaskDidFinishCollectingMetricsBlock

会话执行完成数据统计回调 block。
typedef void (^TQUICURLSessionTaskDidFinishCollectingMetricsBlock)(TQUICURLSession *session, TQUICURLSessionTask *task, TQUICURLSessionTaskMetrics * _Nullable metrics)
参数
描述
session
请求会话管理
task
请求任务管理
metrics
网络状态统计

TQUICURLSessionConfiguration

QUIC 请求参数配置。
成员变量
描述
quicVersion
设置 QUIC 版本号 支持的版本:Q043、Q046、Q050、Q051、draft-29、RFC-V1(RFC 9000) 取值:
TQUICVersionQ043 (默认值)
TQUICVersion046
TQUICVersion050
TQUICVersion051
TQUICVersionDraft29
TQUICVersionRFCV1
congestionType
支持的拥塞算法(CubicBytes、RenoBytes、BBR、PCC、GCC)
取值:
TQUICCongestionTypeBBR(默认值)
TQUICCongestionTypeCubicBytes
TQUICCongestionTypeRenoBytes
TQUICCongestionTypePCC
TQUICCongestionTypeGCC
connectTimeoutMillis
连接超时时间,单位:毫秒 默认值:60000
idleTimeoutMillis
空闲连接超时时间,影响连接复用,单位:毫秒 默认值:90000
ipv6Enabled
是否支持 IPv6,可选 YES 或者 NO 默认值:NO
dnsParser
自定义 DNS 解析代理,参考:TQUICDNSParserDelegate

TQUICDNSParserDelegate

DNS 解析代理,可实现自定义 DNS 解析。

- (NSString *)lookup:(NSString *)hostName
参数
描述
hostName
域名,在请求过程中会回调域名,需要返回解析到的 IP 地址

TQUICURLSession

请求任务管理接口。
API
描述
根据配置创建实例
根据默认配置创建实例,单例
根据request参数创建请求任务

sessionWithConfiguration

根据配置创建实例。
+ (instancetype)sessionWithConfiguration:(TQUICURLSessionConfiguration *)configuration
参数
描述
configuration
配置信息

sharedSession

根据默认配置创建实例,单例。
+ (instancetype)sharedSession

dataTaskWithRequest

根据 request 参数创建请求任务。
- (nullable TQUICURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
参数
描述
request
请求参数,参考系统 NSURLRequest

TQUICURLSessionTask

求任务管理接口。
API
描述
resume
启动请求
cancel
取消请求

resume

开始请求。

- (void)resume

cancel

取消请求。

- (void)cancel

TQUICURLSessionDataTask

请求任务管理接口,扩展 TQUICURLSessionTask 协议。
API
描述
resume
启动请求
cancel
取消请求

resume

开始请求。

- (void)resume

cancel

取消请求。

- (void)cancel

TQUICURLRequestSerialization

API
描述
http 请求参数序列化
JSON 请求参数序列化

TQUICHTTPRequestSerializer

请求数据序列化接口。
API
描述
实例化
setValue
设置 Header 值
根据 Header 字段返回对应的值
创建 NSMutableURLRequest
创建 NSMutableURLRequest,用于传输流式数据

serializer

构造 TQUICHTTPRequestSerializer 实例。
+ (instancetype)serializer

setValue

设置 Header 值。
- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(NSString *)field
参数
描述
value
Header 值
field
Header 字段

valueForHTTPHeaderField

根据 Header 字段返回对应的值。
- (nullable NSString *)valueForHTTPHeaderField:(NSString *)field
参数
描述
field
Header 字段

requestWithMethod

创建 NSMutableURLRequest。
- (nullable NSMutableURLRequest *)requestWithMethod:(NSString *)method

                                          URLString:(NSString *)URLString

                                         parameters:(nullable id)parameters

                                              error:(NSError * _Nullable __autoreleasing *)error
参数
描述
method
设置请求方法,get、post、put、delete、head、patch 等 http 标准支持的方法
URLString
请求 Url
parameters
请求参数
error
错误信息,NSError

multipartFormRequestWithMethod

- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method

                                              URLString:(NSString *)URLString

                                             parameters:(nullable NSDictionary <NSString *, id> *)parameters

                              constructingBodyWithBlock:(nullable void (^)(id <TQUICMultipartFormData> formData))block

                                                  error:(NSError * _Nullable __autoreleasing *)error
参数
描述
method
设置请求方法,get、post、put、delete、head、patch 等 http 标准支持的方法
URLString
请求 Url
parameters
请求参数
constructingBodyWithBlock
使用 Block 方式构建 body 内容
error
错误信息,NSError

TQUICJSONRequestSerializer

API
描述
创建实例

serializerWithWritingOptions

根据 JSON 序列化选项创建 TQUICJSONRequestSerializer 实例。
+ (instancetype)serializerWithWritingOptions:(NSJSONWritingOptions)writingOptions
参数
描述
writingOptions
根据 JSON 序列化选项创建实例,参考系统 NSJSONWritingOptions

TQUICMultipartFormData

多分块表单数据上传。
API
描述
通过配置文件路径上传表单数据
通过输入流上传表单数据
分块上传表单数据
添加数据分块
把 Headers 和数据内容添加到表单
上传带宽限制

appendPartWithFileURL

通过指定文件路径上传表单数据。
- (BOOL)appendPartWithFileURL:(NSURL *)fileURL
                         name:(NSString *)name
                        error:(NSError * _Nullable __autoreleasing *)error
参数
描述
fileURL
添加到表单的文件路径
name
关联文件名称
error
错误信息返回

appendPartWithInputStream

通过指定输入流上传数据。
- (void)appendPartWithInputStream:(nullable NSInputStream *)inputStream
                             name:(NSString *)name
                         fileName:(NSString *)fileName
                           length:(int64_t)length
                         mimeType:(NSString *)mimeType
参数
描述
inputStream
输入流
name
关联输入流的名称
fileName
关联输入流文件名
length
流数据长度(单位 bytes )
mimeType
MIME Type(例如:image/jpeg,详细参考 HTTP 协议标准)

appendPartWithFileData

分块上传表单数据。
- (void)appendPartWithFileData:(NSData *)data
                          name:(NSString *)name
                      fileName:(NSString *)fileName
                      mimeType:(NSString *)mimeType
参数
描述
data
添加到表单的数据
name
关联数据的名称
fileName
关联数据文件名
mimeType
MIME Type(例如:image/jpeg,详细参考 HTTP 协议标准)

appendPartWithFormData

添加数据块。
- (void)appendPartWithFormData:(NSData *)data
                          name:(NSString *)name
参数
描述
data
添加到表单的数据
name
关联数据名称

appendPartWithHeaders

把 Headers 和数据内容添加到表单。
- (void)appendPartWithHeaders:(nullable NSDictionary <NSString *, NSString *> *)headers
                         body:(NSData *)body;
参数
描述
headers
要添加 headers 内容
body
添加到表单的数据

throttleBandwidthWithPacketSize

上传带宽限制。
- (void)throttleBandwidthWithPacketSize:(NSUInteger)numberOfBytes
                                  delay:(NSTimeInterval)delay
参数
描述
numberOfBytes
数据包最大值(单位:bytes,默认值:16kb)
delay
数据包读取时延(默认值:0)



TQUICURLResponseSerialization

响应数据序列化接口。
API
描述
http 响应数据序列化
JSON 响应数据序列化

TQUICHTTPResponseSerializer

响应数据序列化接口。
API
描述
实例化
检查响应数据是否合法

serializer

构造 TQUICHTTPResponseSerializer 实例。
+ (instancetype)serializer

validateResponse

检查响应数据是否合法。
- (BOOL)validateResponse:(nullable NSHTTPURLResponse *)response

                    data:(nullable NSData *)data

                   error:(NSError * _Nullable __autoreleasing *)error
参数
描述
response
要校验的返回结果,详见:NSHTTPURLResponse
data
返回的数据
error
校验过程出错信息

TQUICJSONResponseSerializer

API
描述
创建实例

serializerWithWritingOptions

根据 JSON 序列化选项创建 TQUICJSONResponseSerializer 实例。
+ (instancetype)serializerWithReadingOptions:(NSJSONReadingOptions)readingOptions
参数
描述
serializerWithReadingOptions
根据 JSON 序列化选项创建实例,参考系统 NSJSONReadingOptions

TQUICURLSessionTaskMetrics

QUIC 网络状态统计,一次会话统计。
属性
描述
transactionMetrics
数组,由于有重定向,一次会话会包含多次请求,每次请求的统计内容见:TQUICURLSessionTaskTransactionMetrics
taskInterval
任务耗时,从任务创建到执行完成的时间间隔
redirectCount
重定向次数

TQUICURLSessionTaskTransactionMetrics

QUIC 网络状态统计,一次请求统计。
属性
描述
isValid
状态值是否有效
isQuic
是否 QUIC 请求
is0rtt
是否为 0-RTT 连接
isConnReuse
是否为连接复用
connectMillis
获取连接耗时,单位:毫秒
dnsMillis
获取 dns 耗时,单位:毫秒
dnsCode
获取 dns 错误码
ttfbMillis
获取首包耗时,单位:毫秒
completeMillis
获取请求完成时间(不含连接耗时),单位:毫秒
srttMicros
获取滑动平均rtt,单位:毫秒
packetsSent
获取发包量,单位:byte
packetsRetransmitted
获取重传包量,单位:byte
bytesSent
获取发送字节数,单位:byte
bytesRetransmitted
获取重传字节数,单位:byte
packetsLost
获取丢包量,单位:byte
packetsReceived
获取收包量,单位:byte
bytesReceived
获取收到字节数,单位:byte
streamBytesReceived
获取stream层收到的字节数,单位:byte