InMemoryTransformCronetCallback

abstract class InMemoryTransformCronetCallback<T> : ImplicitFlowControlCallback

已知的直接子類別
ByteArrayCronetCallback

InMemoryTransformCronetCallback 的特化版本,會傳回未經解譯的內文位元組。

JsonCronetCallback

InMemoryTransformCronetCallback 的特化版本,可將回應主體解讀為 JSON。

StringCronetCallback

InMemoryTransformCronetCallback 的特化版本,可將回應內文解讀為字串。


抽象 Cronet 回呼,可將整個主體讀取至記憶體,並視需要還原序列化主體,再傳回給 HTTP 要求的發行者。

要求者可以在回呼中新增完成 mListeners,訂閱要求相關的最新消息。要求達到終端狀態時,系統會依新增順序通知 mListeners。

參數
<T>

回應主體類型

摘要

公用建構函式

公開函式

ImplicitFlowControlCallback!

新增完成事件監聽器。

受保護的函式

Unit

每當讀取部分回應內文時,就會呼叫這個方法。

Unit

如果要求透過 cancel 取消,就會叫用這個方法。

Unit
onFailed(info: UrlResponseInfo?, exception: CronetException!)

如果要求在 start 後因任何原因失敗,系統就會叫用這個方法。

Unit

在收到所有重新導向後的最終標頭集時叫用。

Unit

要求順利完成時會叫用此方法。

abstract T!

將純文字全文轉換 (還原序列化) 為使用者定義的物件。

繼承函式

來自 org.chromium.net.apihelpers.ImplicitFlowControlCallback
Unit
onCanceled(request: UrlRequest!, info: UrlResponseInfo!)

如果要求透過 cancel 取消,就會叫用這個方法。

Unit
onFailed(
    request: UrlRequest!,
    info: UrlResponseInfo!,
    error: CronetException!
)

如果要求在 start 後因任何原因失敗,系統就會叫用這個方法。

Unit
onReadCompleted(
    request: UrlRequest!,
    info: UrlResponseInfo!,
    byteBuffer: ByteBuffer!
)

每當讀取部分回應內文時,就會呼叫這個方法。

Unit
onRedirectReceived(
    request: UrlRequest!,
    info: UrlResponseInfo!,
    newLocationUrl: String!
)

每當遇到重新導向時,就會叫用這個方法。

Unit

在收到所有重新導向後的最終標頭集時叫用。

Unit
onSucceeded(request: UrlRequest!, info: UrlResponseInfo!)

要求順利完成時會叫用此方法。

abstract Boolean
shouldFollowRedirect(info: UrlResponseInfo!, newLocationUrl: String!)

每當遇到重新導向時,就會叫用這個方法。

來自 org.chromium.net.UrlRequest.Callback
abstract Unit
onFailed(
    request: UrlRequest!,
    info: UrlResponseInfo!,
    error: CronetException!
)

如果要求在 start 後因任何原因失敗,系統就會叫用這個方法。

abstract Unit
onReadCompleted(
    request: UrlRequest!,
    info: UrlResponseInfo!,
    byteBuffer: ByteBuffer!
)

每當讀取部分回應內文時,就會呼叫這個方法。

abstract Unit
onRedirectReceived(
    request: UrlRequest!,
    info: UrlResponseInfo!,
    newLocationUrl: String!
)

每當遇到重新導向時,就會叫用這個方法。

公用建構函式

InMemoryTransformCronetCallback

InMemoryTransformCronetCallback()

公開函式

addCompletionListener

fun addCompletionListener(listener: CronetRequestCompletionListener<T!>!): ImplicitFlowControlCallback!

新增完成事件監聽器。要求達到最終狀態時,系統會依新增順序通知所有接聽者。如果多次新增接聽器,系統只會根據第一次新增接聽器時呼叫一次。

受保護的函式

onBodyChunkRead

protected fun onBodyChunkRead(info: UrlResponseInfo!, bodyChunk: ByteBuffer!): Unit

每當讀取部分回應內文時,就會呼叫這個方法。即使尚未耗用整個回應主體,緩衝區可能只會填入部分內容。緩衝區已可供讀取。緩衝區會在內部重複使用,因此實作類別不應儲存緩衝區,或在實作這個方法以外的任何地方使用緩衝區。

參數
info: UrlResponseInfo!

回覆資訊。

bodyChunk: ByteBuffer!

包含接收資料的緩衝區,已翻轉供讀取。

擲回
java.lang.Exception

如果在處理讀取完成時發生錯誤,系統會呼叫 onFailed,並將擲回的例外狀況設為 CallbackException 的原因。

onCanceled

protected fun onCanceled(info: UrlResponseInfo?): Unit

如果要求透過 cancel 取消,就會叫用這個方法。一旦叫用,就不會再叫用其他 UrlRequest.Callback 方法。

參數
info: UrlResponseInfo?

回覆資訊。如果沒有收到回覆,可能需要 null 天。

onFailed

protected fun onFailed(info: UrlResponseInfo?, exception: CronetException!): Unit

如果要求在 start 後因任何原因失敗,系統就會叫用這個函式。一旦叫用,就不會再叫用其他 UrlRequest.Callback 方法。error 提供失敗相關資訊。

參數
info: UrlResponseInfo?

回覆資訊。如果沒有收到回覆,可能需要 null 天。

exception: CronetException!

錯誤相關資訊。

onResponseStarted

protected fun onResponseStarted(info: UrlResponseInfo!): Unit

在收到所有重新導向後的最終標頭集時叫用。每個要求只會叫用一次。保證這個方法傳回前,Cronet 不會開始讀取內文。

參數
info: UrlResponseInfo!

回覆資訊。

擲回
java.lang.Exception

如果在處理回應開始時發生錯誤,系統會呼叫 onFailed,並將擲回的例外狀況設為 CallbackException 的原因。

onSucceeded

protected fun onSucceeded(info: UrlResponseInfo!): Unit

要求順利完成時會叫用此方法。一旦叫用,就不會再叫用其他 UrlRequest.Callback 方法。

參數
info: UrlResponseInfo!

回覆資訊。

transformBodyBytes

protected abstract fun transformBodyBytes(info: UrlResponseInfo!, bodyBytes: ByteArray!): T!

將純文字全文轉換 (還原序列化) 為使用者定義的物件。

實作類別應適當處理特殊情況 (例如空白和格式錯誤的主體)。Cronet 不會檢查物件,而是將物件 (或任何例外狀況) 傳遞給要求的發布者。