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.Listener 的物件,其中包含 RequestFinishedInfo

傳回
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

建構工具,方便鏈結。