BidirectionalStream.Builder

public abstract class BidirectionalStream.Builder


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

摘要

常量

static final int

最高流优先级。

static final int

最低流优先级。

static final int

低流优先级。

static final int

极低流优先级。

static final int

中流优先级。

公共构造函数

公共方法

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

添加请求标头。

BidirectionalStream.Builder

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

BidirectionalStream.Builder
bindToNetwork(long networkHandle)

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

abstract BidirectionalStream

使用此 Builder 中的配置创建 BidirectionalStream

abstract BidirectionalStream.Builder
delayRequestHeadersUntilFirstFlush(
    boolean delayRequestHeadersUntilFirstFlush
)

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

abstract BidirectionalStream.Builder

为请求设置 HTTP 方法。

abstract BidirectionalStream.Builder
setPriority(int priority)

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

BidirectionalStream.Builder

设置 android.net.TrafficStats 标记,以便在计算由此请求导致的套接字流量时使用。

BidirectionalStream.Builder

设置在计算由此请求导致的套接字流量时使用的特定 UID。

常量

STREAM_PRIORITY_HIGHEST

public static final int STREAM_PRIORITY_HIGHEST = 4

最高流优先级。传递给 setPriority

STREAM_PRIORITY_IDLE

public static final int STREAM_PRIORITY_IDLE = 0

最低流优先级。传递给 setPriority

STREAM_PRIORITY_LOW

public static final int STREAM_PRIORITY_LOW = 2

低流优先级。传递给 setPriority

STREAM_PRIORITY_LOWEST

public static final int STREAM_PRIORITY_LOWEST = 1

极低流优先级。传递给 setPriority

STREAM_PRIORITY_MEDIUM

public static final int STREAM_PRIORITY_MEDIUM = 3

中流优先级。传递给 setPriority。这是为流提供的默认优先级。

公共构造函数

Builder

public Builder()

公共方法

addHeader

public abstract BidirectionalStream.Builder addHeader(String header, String value)

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

参数
String header

标头名称

String value

标头值

返回
BidirectionalStream.Builder

构建器,方便链接

addRequestAnnotation

public BidirectionalStream.Builder addRequestAnnotation(Object annotation)

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

参数
Object annotation

一个对象,用于通过 RequestFinishedInfo 传递给 RequestFinishedInfo.Listener

返回
BidirectionalStream.Builder

构建器,方便链接。

bindToNetwork

public BidirectionalStream.Builder bindToNetwork(long networkHandle)

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

参数
long networkHandle

用于将请求绑定到的网络句柄。指定 UNBIND_NETWORK_HANDLE 以取消绑定。

返回
BidirectionalStream.Builder

构建器,方便链接。

build

public abstract BidirectionalStream build()

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

返回
BidirectionalStream

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

delayRequestHeadersUntilFirstFlush

public abstract BidirectionalStream.Builder delayRequestHeadersUntilFirstFlush(
    boolean delayRequestHeadersUntilFirstFlush
)

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

参数
boolean delayRequestHeadersUntilFirstFlush

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

返回
BidirectionalStream.Builder

构建器,方便链接。

setHttpMethod

public abstract BidirectionalStream.Builder setHttpMethod(String method)

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

参数
String method

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

返回
BidirectionalStream.Builder

构建器,方便链接

setPriority

public abstract BidirectionalStream.Builder setPriority(int priority)

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

参数
int priority

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

返回
BidirectionalStream.Builder

构建器,方便链接。

setTrafficStatsTag

public BidirectionalStream.Builder setTrafficStatsTag(int tag)

设置 android.net.TrafficStats 标记,以便在计算由此请求导致的套接字流量时使用。如需了解详情,请参阅 android.net.TrafficStats。如果未设置任何标记(例如,未调用此方法),则 Android 会计算由此请求导致的套接字流量,就像标记值设置为 0 一样。

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

参数
int tag

用于计算由此请求导致的套接字流量的标记值。0xFFFFFF00 到 0xFFFFFFFF 之间的标记已预留,供系统服务(如 android.app.DownloadManager)在代表应用执行流量时在内部使用。

返回
BidirectionalStream.Builder

构建器,方便链接。

setTrafficStatsUid

public BidirectionalStream.Builder setTrafficStatsUid(int uid)

设置在计算由此请求导致的套接字流量时使用的特定 UID。如需了解详情,请参阅 android.net.TrafficStats。专为代表其他应用执行操作时使用而设计。调用方必须拥有 MODIFY_NETWORK_ACCOUNTING 权限。默认情况下,流量归因于调用方的 UID。

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

参数
int uid

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

返回
BidirectionalStream.Builder

构建器,方便链接。