Android

最近更新时间:2023-12-19 16:31:12

我的收藏

API概览

API
描述
QUIC 主功能入口,包括创建 QuicCall 实例、QUIC 配置、获取版本号等。
QuicCall
用来管理 QUIC 请求(发起请求、取消请求、获取状态)
请求信息封装
请求响应结果封装
请求回调接口
QUIC网络状态信息

QuicClient

QUIC 主功能入口,包括创建 QuicCall 实例、QUIC 配置、获取版本号等。
API
描述
newCall
创建 QuicCall 实例
Builder
QUIC 配置信息构建
获取 SDK 版本号

newCall

创建 QUIC 请求,每次请求都需要调用此方法创建新的 QuicCall。
QuicCall newCall(QuicRequest request)
参数
描述
request
请求信息封装,可参考:QuicRequest


getVersion


获取 SDK 版本号,静态方法。
String getVersion()

Builder

QUIC 配置接口。
API
描述
设置 QUIC 协议版本号
设置拥塞算法
设置连接超时时间
设置请求总超时时间
设置空闲连接超时时间
是否支持 IPv6
build
创建 QuicClient

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
描述
enqueue
异步发起 QUIC 网络请求
cancel
取消请求
获取 QUIC 网络状态信息,详见:QuicNetStats

enqueue

异步发起 QUIC 请求,请求加入到队列中,请求响应通过回调函数通知。
void enqueue(QuicCallback callback)
参数
描述
callback
请求响应结果回调函数,详见:QuicCallback

cancel

取消请求。
void cancel()

getQuicNetStats

获取 QUIC 网络状态信息。
QuicNetStats getQuicNetStats()

QuicRequest

请求参数。
API
描述
Builder
请求参数构建

Builder

API
描述
setUrl
设置请求 Url
setIp
设置请求 IP
addHeader
添加请求 Header 信息
get
设置为 Get 请求
post
设置为 Post 请求
method
其它请求类型参数设置
build
创建 QuicRequest 对象

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
描述
getCode
获取响应状态码
获取响应 Header 信息
获取 Content-Type
获取 Content-Length
body
获取响应 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
描述
请求成功回调
onFailed
请求失败回调

onResponse

请求正常响应时回调函数。
void onResponse(QuicCall call, QuicResponse response) throws IOException
参数
描述
call
用来管理 QUIC 请求,详见:QuicCall
response
QUIC 响应信息,详见:QuicResponse

onFailed

请求失败时的回调函数。
void onFailed(QuicCall call, int errorCode, String errorMsg)
参数
描述
call
用来管理 QUIC 请求,详见:QuicCall
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