Android
API概览
| API | 描述 | 
| QUIC 主功能入口,包括创建 QuicCall 实例、QUIC 配置、获取版本号等。 | |
| 用来管理 QUIC 请求(发起请求、取消请求、获取状态) | |
| 请求信息封装 | |
| 请求响应结果封装 | |
| 请求回调接口 | |
| QUIC网络状态信息 | 
QuicClient
QUIC 主功能入口,包括创建 QuicCall 实例、QUIC 配置、获取版本号等。
| API | 描述 | 
| QUIC 配置信息构建 | |
| 获取 SDK 版本号 | 
newCall
创建 QUIC 请求,每次请求都需要调用此方法创建新的 QuicCall
QuicCall newCall(QuicRequest request)
| 参数 | 描述 | 
| request | 
getVersion
获取 SDK 版本号,静态方法
String getVersion()
Builder
QUIC 配置接口
| API | 描述 | 
| 设置 QUIC 协议版本号 | |
| 设置拥塞算法 | |
| 设置连接超时时间 | |
| 设置请求总超时时间 | |
| 设置空闲连接超时时间 | |
| 是否支持 IPv6 | |
setQuicVersion
设置使用的 QUIC 协议版本号
Builder setQuicVersion(int quicVersion)
| 参数 | 描述 | 
| quicVersion | 设置 QUIC 协议版本号
支持的版本:Q043、Q046、Q050、Q051、draft-29、RFC-V1(RFC 9000) 取值: QuicClient.QUIC_VERSION_Q43 (默认值) QuicClient.QUIC_VERSION_Q46 QuicClient.QUIC_VERSION_Q50 QuicClient.QUIC_VERSION_Q51 QuicClient.QUIC_VERSION_IETF_DRAFT_29 QuicClient.QUIC_VERSION_IETF_RFC_V1 | 
setCongestionType
设置拥塞算法
Builder setCongestionType(int congestionType)
| 参数 | 描述 | 
| congestionType | 支持的拥塞算法(CubicBytes、RenoBytes、BBR、PCC、GCC) 取值: QuicClient.CONGESTION_TYPE_BBR (默认值) QuicClient.CONGESTION_TYPE_RENO_BYTES QuicClient.CONGESTION_TYPE_BBR QuicClient.CONGESTION_TYPE_PCC QuicClient.CONGESTION_TYPE_GCC | 
setConnectTimeoutMillis
设置连接超时时间
Builder setConnectTimeoutMillis(int connectTimeoutMillis)
| 参数 | 描述 | 
| connectTimeoutMillis | 连接超时时间,单位:毫秒 默认值:60000 | 
setTotalTimeoutMillis
 设置请求总超时时间,包括数据流读写
Builder setTotalTimeoutMillis(int totalTimeoutMillis)
| 参数 | 描述 | 
| totalTimeoutMillis | 请求总超时时间,单位:毫秒 默认值:0(不超时) | 
setIdleTimeoutMillis
设置空闲连接超时时间,主要用于连接复用参数调整,超时后连接关闭不能再复用
Builder setIdleTimeoutMillis(int idleTimeoutMillis)
| 参数 | 描述 | 
| idleTimeoutMillis | 空闲连接超时时间,单位:毫秒 默认值:90000 | 
setSupportIpV6
是否支持 IPv6
Builder setSupportIpV6(boolean supportIpV6)
| 参数 | 描述 | 
| supportIpV6 | 是否支持 IPv6,可选 true 或 false 默认值:false | 
build
创建 QuicClient
QuicClient build()
QuicCall
用来管理 QUIC 请求(发起请求、取消请求、获取状态信息)
| API | 描述 | 
| 异步发起 QUIC 网络请求 | |
| 取消请求 | |
enqueue
异步发起 QUIC 请求,请求加入到队列中,请求响应通过回调函数通知
void enqueue(QuicCallback callback)
| 参数 | 描述 | 
| callback  | 
cancel
取消请求
void cancel()
getQuicNetStats
获取 QUIC 网络状态信息
QuicNetStats getQuicNetStats()
QuicRequest
请求参数
| API | 描述 | 
| 请求参数构建 | 
Builder
setUrl
设置请求 Url
Builder setUrl(String url)
| 参数 | 描述 | 
| url | 必填,请求 Url | 
setIp
设置请求 IP 地址
Builder setIp(String ip)
| 参数 | 描述 | 
| ip | 可选,如果不采用默认 DNS 解析,可以设置解析后的 ip 地址 | 
addHeader
添加请求 header 信息,key-value 形式
Builder addHeader(String key, String value)
| 参数 | 描述 | 
| key | Header 中的 key | 
| value | Header 中的 value | 
get
设置为 Get 请求
Builder get()
post
设置为 Post 请求
Builder post(RequestBody body)
| 参数 | 描述 | 
| body | body 数据 | 
method
用于构建 Delete、Put 等请求
Builder method(String method, RequestBody body)
| 参数 | 描述 | 
| method | 请求方式,可选:Put、Delete、head、patch | 
| body | body 数据 | 
build
创建 QuicRequest
QuicRequest build()
QuicResponse
请求响应信息
| API | 描述 | 
| 获取响应状态码 | |
| 获取响应 Header 信息 | |
| 获取 Content-Type | |
| 获取 Content-Length | |
| 获取响应 body | 
getCode
获取响应状态码
int getCode()
getHeaders
获取响应的 Header 信息,以列表形式返回
List<String> getHeaders()
getContentType
获取响应的内容类型
void setContentType(String contentType)
| 参数 | 描述 | 
| contentType | Header 中的 Content-Type 信息 | 
getContentLength
获取内容长度
void setContentLength(long contentLength)
| 参数 | 描述 | 
| contentLength | Header 中的 Content-Length 信息 | 
body
获取响应的 body 内容
ResponseBody body()
QuicCallback
请求回调接口
| API | 描述 | 
| 请求成功回调 | |
| 请求失败回调 | 
onResponse
请求正常响应时回调函数
void onResponse(QuicCall call, QuicResponse response) throws IOException
| 参数 | 描述 | 
| call | |
| response | 
onFailed
请求失败时的回调函数
void onFailed(QuicCall call, int errorCode, String errorMsg)
| 参数 | 描述 | 
| call | |
| errorCode | 错误码 | 
| errorMsg | 错误信息 | 
QuicNetStats
可获取请求过程中的网络状态信息
| API | 描述 | 
| isValid | 状态值是否有效 | 
| isQuic | 是否 QUIC 请求 | 
| is0rtt | 是否为 0-RTT 连接 | 
| isConnReuse | 是否为连接复用 | 
| getConnectMs | 获取连接耗时,单位:毫秒 | 
| getDnsMs | 获取 dns 耗时,单位:毫秒 | 
| getDnsCode | 获取 dns 错误码 | 
| getTtfbMs | 获取首包耗时,单位:毫秒 | 
| getCompleteMs | 获取请求完成时间(不含连接耗时),单位:毫秒 | 
| getSrttMs | 获取滑动平均 rtt,单位:毫秒 | 
| getPacketsSent | 获取发包量,单位:byte | 
| getPacketsRetransmitted | 获取重传包量,单位:byte | 
| getBytesSent | 获取发送字节数,单位:byte | 
| getBytesRetransmitted | 获取重传字节数,单位:byte | 
| getPacketsLost | 获取丢包量,单位:byte | 
| getPacketsReceived | 获取收包量,单位:byte | 
| getBytesReceived | 获取收到字节数,单位:byte | 
| getStreamBytesReceived | 获取 stream 层收到的字节数,单位:byte |