public abstract class InMemoryTransformCronetCallback extends ImplicitFlowControlCallback
已知直接子类 |
一个抽象的 Cronet 回调,它将整个正文读取到内存中,并在将其返回给 HTTP 请求的发起者之前选择性地反序列化正文。
请求者可以通过在回调上添加完成监听器来订阅请求更新。当请求达到终端状态时,将按添加顺序通知监听器。
公共构造函数摘要
公共方法摘要
ImplicitFlowControlCallback |
受保护方法摘要
final void | |
final void | |
final void | |
final void | |
final void | |
abstract T |
继承方法摘要
公共构造函数
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 |