InMemoryTransformCronetCallback

public abstract class InMemoryTransformCronetCallback extends ImplicitFlowControlCallback
已知直接子类

一个抽象的 Cronet 回调,它将整个正文读取到内存中,并在将其返回给 HTTP 请求的发起者之前选择性地反序列化正文。

请求者可以通过在回调上添加完成监听器来订阅请求更新。当请求达到终端状态时,将按添加顺序通知监听器。

公共构造函数摘要

公共方法摘要

ImplicitFlowControlCallback
addCompletionListener(CronetRequestCompletionListener<? super T> listener)
添加完成监听器。

受保护方法摘要

final void
onBodyChunkRead(UrlResponseInfo info, ByteBuffer bodyChunk)
每当读取部分响应正文时调用。
final void
onCanceled(UrlResponseInfo info)
如果请求通过 UrlRequest.cancel() 被取消,则调用此方法。
final void
onFailed(UrlResponseInfo info, CronetException exception)
如果在 UrlRequest.start() 后请求因任何原因失败,则调用此方法。
final void
onResponseStarted(UrlResponseInfo info)
收到所有重定向后的最终标头集时调用。
final void
onSucceeded(UrlResponseInfo info)
请求成功完成后调用。
abstract T
transformBodyBytes(UrlResponseInfo info, byte[] bodyBytes)
将纯粹的完整正文转换(反序列化)为用户定义的对象。

继承方法摘要

公共构造函数

public InMemoryTransformCronetCallback ()

公共方法

public ImplicitFlowControlCallback addCompletionListener (CronetRequestCompletionListener<? super T> listener)

添加完成监听器。当请求达到终端状态时,将按添加顺序通知所有监听器。如果一个监听器被多次添加,则只会根据第一次添加的时间调用一次。

参数
listener

受保护方法

protected final void onBodyChunkRead (UrlResponseInfo info, ByteBuffer bodyChunk)

每当读取部分响应正文时调用。即使尚未消耗整个响应正文,也可能只填充了缓冲区的一部分。缓冲区已准备好进行读取。缓冲区在内部被重用,因此实现类不应存储缓冲区或在本方法实现之外的任何地方使用它。

参数
info 响应信息。
bodyChunk 包含接收数据的缓冲区,已翻转以便读取。
抛出
Exception

protected final void onCanceled (UrlResponseInfo info)

如果请求通过 UrlRequest.cancel() 被取消,则调用此方法。一旦调用此方法,将不会调用其他 UrlRequest.Callback 方法。

参数
info 响应信息。如果未收到响应,则可能为 null

protected final void onFailed (UrlResponseInfo info, CronetException exception)

如果在 UrlRequest.start() 后请求因任何原因失败,则调用此方法。一旦调用此方法,将不会调用其他 UrlRequest.Callback 方法。error 提供有关失败的信息。

参数
info 响应信息。如果未收到响应,则可能为 null
exception 有关错误的信息。

protected final void onResponseStarted (UrlResponseInfo info)

收到所有重定向后的最终标头集时调用。每个请求只会调用一次。保证 Cronet 在此方法返回之前不会开始读取正文。

参数
info 响应信息。

protected final void onSucceeded (UrlResponseInfo info)

请求成功完成后调用。一旦调用此方法,将不会调用其他 UrlRequest.Callback 方法。

参数
info 响应信息。

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

将纯粹的完整正文转换(反序列化)为用户定义的对象。

假设实现类会适当地处理边缘情况(例如空的正文和格式错误的正文)。Cronet 不会检查对象,并会将它们(或任何异常)传递给请求的发起者。

参数
info
bodyBytes