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!

要傳遞至 RequestFinishedInfo.Listener 的物件,其中包含 RequestFinishedInfo

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

建構工具,方便鏈結。