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 方法。exception 提供有关失败的信息。

参数
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