BidirectionalStream.Builder

abstract class BidirectionalStream.Builder


BidirectionalStream 的构建器。允许在通过 build 构建流之前配置流。由 newBidirectionalStreamBuilder 创建。

摘要

常量

const Int

最高视频流优先级。

const Int

最低的视频流优先级。

const Int

低数据流优先级。

const Int

视频流优先级非常低。

const Int

中等数据流优先级。

公共构造函数

公共函数

abstract BidirectionalStream.Builder!
addHeader(header: String!, value: String!)

添加请求标头。

BidirectionalStream.Builder!
addRequestAnnotation(annotation: Any!)

将注释对象与此请求相关联。

BidirectionalStream.Builder!
bindToNetwork(networkHandle: Long)

将请求绑定到指定的网络句柄。

abstract BidirectionalStream!

使用此 Builder 中的配置创建 BidirectionalStream

abstract BidirectionalStream.Builder!
delayRequestHeadersUntilFirstFlush(
    delayRequestHeadersUntilFirstFlush: Boolean
)

延迟发送请求标头,直到调用 flush

abstract BidirectionalStream.Builder!

设置请求的 HTTP 方法。

abstract BidirectionalStream.Builder!
setPriority(priority: Int)

设置流的优先级,该优先级应为 STREAM_PRIORITY_* 值之一。

BidirectionalStream.Builder!

设置在统计由此请求引起的套接字流量时要使用的 android.net.TrafficStats 标记。

BidirectionalStream.Builder!

设置在统计此请求引起的套接字流量时要使用的特定 UID。

常量

STREAM_PRIORITY_HIGHEST

const val STREAM_PRIORITY_HIGHEST = 4: Int

最高视频流优先级。已传递给 setPriority

STREAM_PRIORITY_IDLE

const val STREAM_PRIORITY_IDLE = 0: Int

最低的视频流优先级。已传递给 setPriority

STREAM_PRIORITY_LOW

const val STREAM_PRIORITY_LOW = 2: Int

低数据流优先级。已传递给 setPriority

STREAM_PRIORITY_LOWEST

const val STREAM_PRIORITY_LOWEST = 1: Int

视频流优先级非常低。已传递给 setPriority

STREAM_PRIORITY_MEDIUM

const val STREAM_PRIORITY_MEDIUM = 3: Int

中等数据流优先级。已传递给 setPriority。这是分配给流的默认优先级。

公共构造函数

Builder

Builder()

公共函数

addHeader

abstract fun addHeader(header: String!, value: String!): BidirectionalStream.Builder!

添加请求标头。返回构建器以方便链接。

参数
header: String!

标头名称

value: String!

标头值

返回
BidirectionalStream.Builder!

构建器,以方便链接

addRequestAnnotation

fun addRequestAnnotation(annotation: Any!): BidirectionalStream.Builder!

将注释对象与此请求相关联。可以添加多个。传递给 RequestFinishedInfo.Listener,请参阅 getAnnotations

参数
annotation: Any!

要传递给具有 RequestFinishedInfoRequestFinishedInfo.Listener 的对象。

返回
BidirectionalStream.Builder!

构建器,以方便进行链式调用。

bindToNetwork

fun bindToNetwork(networkHandle: Long): BidirectionalStream.Builder!

将请求绑定到指定的网络句柄。Cronet 将仅使用与此句柄关联的网络发送此请求。如果此网络断开连接,请求将失败,具体错误将取决于网络断开连接时请求处理的阶段。可以通过 Network#getNetworkHandle 获取网络句柄。仅从 Android Marshmallow 开始提供。

参数
networkHandle: Long

要将请求绑定到的网络句柄。指定 UNBIND_NETWORK_HANDLE 可取消绑定。

返回
BidirectionalStream.Builder!

构建器,以方便进行链式调用。

build

abstract fun build(): BidirectionalStream!

使用此 Builder 中的配置创建 BidirectionalStream。然后,可以通过调用 start 来启动返回的 BidirectionalStream

返回
BidirectionalStream!

使用此 Builder 中的配置构建的 BidirectionalStream

delayRequestHeadersUntilFirstFlush

abstract fun delayRequestHeadersUntilFirstFlush(
    delayRequestHeadersUntilFirstFlush: Boolean
): BidirectionalStream.Builder!

延迟发送请求标头,直到调用 flush。目前,只有在协商 QUIC 时才会考虑此标志。如果为 true,QUIC 将尽可能将请求标头帧与数据帧一起作为单个数据包发送。

参数
delayRequestHeadersUntilFirstFlush: Boolean

如果为 true,则发送请求标头将延迟到调用 flush() 时。

返回
BidirectionalStream.Builder!

构建器,以方便进行链式调用。

setHttpMethod

abstract fun setHttpMethod(method: String!): BidirectionalStream.Builder!

设置请求的 HTTP 方法。返回构建器以方便链接。

参数
method: String!

用于请求的方法。默认值为“POST”

返回
BidirectionalStream.Builder!

构建器,以方便链接

setPriority

abstract fun setPriority(priority: Int): BidirectionalStream.Builder!

设置流的优先级,该优先级应为 STREAM_PRIORITY_* 值之一。如果未调用此方法,则系统会为该流提供 STREAM_PRIORITY_MEDIUM 优先级。

参数
priority: Int

流的优先级,应为 STREAM_PRIORITY_* 值之一。

返回
BidirectionalStream.Builder!

构建器,以方便进行链式调用。

setTrafficStatsTag

fun setTrafficStatsTag(tag: Int): BidirectionalStream.Builder!

设置在统计由此请求引起的套接字流量时要使用的 android.net.TrafficStats 标记。如需了解详情,请参阅 android.net.TrafficStats。如果未设置标记(例如,未调用此方法),Android 会将此请求造成的套接字流量视为标记值设置为 0。

注意:设置标记会禁止与其他标记的请求共享套接字,这可能会禁止连接共享,从而对性能产生不利影响。换句话说,只有当所有请求都具有相同的套接字标记时,才允许使用多路复用套接字(例如 HTTP/2 和 QUIC)。

参数
tag: Int

用于统计此请求造成的套接字流量的标记值。介于 0xFFFFFF00 和 0xFFFFFFFF 之间的标记已预留,供系统服务(例如 android.app.DownloadManager)在代表应用执行流量操作时在内部使用。

返回
BidirectionalStream.Builder!

构建器,以方便进行链式调用。

setTrafficStatsUid

fun setTrafficStatsUid(uid: Int): BidirectionalStream.Builder!

设置在统计此请求引起的套接字流量时要使用的特定 UID。如需了解详情,请访问 android.net.TrafficStats。旨在用于代表其他应用执行操作时。调用方必须持有 MODIFY_NETWORK_ACCOUNTING 权限。默认情况下,流量归因于调用方的 UID。

注意:设置 UID 会禁止与其他 UID 的请求共享套接字,这可能会禁止连接共享,从而对性能产生不利影响。换句话说,只有当所有请求都设置了相同的 UID 时,才允许使用多路复用套接字(例如 HTTP/2 和 QUIC)。

参数
uid: Int

用于归因于此请求所致套接字流量的 UID。

返回
BidirectionalStream.Builder!

构建器,以方便进行链式调用。