InMemoryTransformCronetCallback

public abstract class InMemoryTransformCronetCallback<T> extends ImplicitFlowControlCallback

已知的直接子類別
ByteArrayCronetCallback

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

JsonCronetCallback

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

StringCronetCallback

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


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

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

參數
<T>

回應主體類型

摘要

公用建構函式

公用方法

ImplicitFlowControlCallback

新增完成事件監聽器。

受保護的方法

final void

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

final void

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

final void

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

final void

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

final void

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

abstract T
transformBodyBytes(UrlResponseInfo info, byte[] bodyBytes)

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

繼承方法

來自 org.chromium.net.apihelpers.ImplicitFlowControlCallback
final void

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

final void
onFailed(
    UrlRequest request,
    UrlResponseInfo info,
    CronetException error
)

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

final void
onReadCompleted(
    UrlRequest request,
    UrlResponseInfo info,
    ByteBuffer byteBuffer
)

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

final void
onRedirectReceived(
    UrlRequest request,
    UrlResponseInfo info,
    String newLocationUrl
)

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

final void

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

final void

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

abstract boolean

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

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

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

abstract void
onReadCompleted(
    UrlRequest request,
    UrlResponseInfo info,
    ByteBuffer byteBuffer
)

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

abstract void
onRedirectReceived(
    UrlRequest request,
    UrlResponseInfo info,
    String newLocationUrl
)

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

公用建構函式

InMemoryTransformCronetCallback

public InMemoryTransformCronetCallback()

公用方法

addCompletionListener

public ImplicitFlowControlCallback addCompletionListener(CronetRequestCompletionListener<T> listener)

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

受保護的方法

onBodyChunkRead

protected final void onBodyChunkRead(UrlResponseInfo info, ByteBuffer bodyChunk)

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

參數
UrlResponseInfo info

回覆資訊。

ByteBuffer bodyChunk

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

擲回
java.lang.Exception

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

onCanceled

protected final void onCanceled(@Nullable UrlResponseInfo info)

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

參數
@Nullable UrlResponseInfo info

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

onFailed

protected final void onFailed(@Nullable UrlResponseInfo info, CronetException exception)

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

參數
@Nullable UrlResponseInfo info

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

CronetException exception

錯誤相關資訊。

onResponseStarted

protected final void onResponseStarted(UrlResponseInfo info)

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

參數
UrlResponseInfo info

回覆資訊。

擲回
java.lang.Exception

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

onSucceeded

protected final void onSucceeded(UrlResponseInfo info)

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

參數
UrlResponseInfo info

回覆資訊。

transformBodyBytes

protected abstract T transformBodyBytes(UrlResponseInfo info, byte[] bodyBytes)

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

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