ImplicitFlowControlCallback

public abstract class ImplicitFlowControlCallback extends UrlRequest.Callback
已知直接子类
已知间接子类

UrlRequest.Callback 的一个实现,它消除了管理请求生命周期的难度,并自动读取整个响应。

公共构造函数摘要

公共方法摘要

final void
onCanceled(UrlRequest request, UrlResponseInfo info)
如果通过 UrlRequest.cancel() 取消请求,则调用此方法。
final void
onFailed(UrlRequest request, UrlResponseInfo info, CronetException error)
如果在 UrlRequest.start() 之后因任何原因导致请求失败,则调用此方法。
final void
onReadCompleted(UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer)
每当读取部分响应正文时调用此方法。
final void
onRedirectReceived(UrlRequest request, UrlResponseInfo info, String newLocationUrl)
每当遇到重定向时调用此方法。
final void
onResponseStarted(UrlRequest request, UrlResponseInfo info)
在收到所有重定向后的最终一组标头时调用此方法。
final void
onSucceeded(UrlRequest request, UrlResponseInfo info)
请求成功完成时调用此方法。

受保护方法摘要

abstract void
onBodyChunkRead(UrlResponseInfo info, ByteBuffer bodyChunk)
每当读取部分响应正文时调用此方法。
abstract void
onCanceled(UrlResponseInfo info)
如果通过 UrlRequest.cancel() 取消请求,则调用此方法。
abstract void
onFailed(UrlResponseInfo info, CronetException exception)
如果在 UrlRequest.start() 之后因任何原因导致请求失败,则调用此方法。
abstract void
onResponseStarted(UrlResponseInfo info)
在收到所有重定向后的最终一组标头时调用此方法。
abstract void
onSucceeded(UrlResponseInfo info)
请求成功完成时调用此方法。
abstract boolean
shouldFollowRedirect(UrlResponseInfo info, String newLocationUrl)
每当遇到重定向时调用此方法。

继承方法摘要

公共构造函数

public ImplicitFlowControlCallback ()

公共方法

public final void onCanceled (UrlRequest request, UrlResponseInfo info)

如果通过 UrlRequest.cancel() 取消请求,则调用此方法。调用此方法后,将不会调用其他 UrlRequest.Callback 方法。默认实现不执行任何操作。

参数
request 已取消的请求。
info 响应信息。如果未收到响应,可能为 null

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

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

参数
request 失败的请求。
info 响应信息。如果未收到响应,可能为 null
error 有关错误的信息。

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

每当读取部分响应正文时调用此方法。即使尚未完全消耗整个响应正文,也可能只填充缓冲区的一部分。除了 onCanceled() 之外,在此方法返回之前,不会为该请求调用其他 UrlRequest.Callback 方法,包括 onSucceeded()onFailed(),直到调用 UrlRequest.read() 尝试继续读取响应正文。

参数
request 接收到数据的请求。
info 响应信息。
byteBuffer 传递给 UrlRequest.read() 的缓冲区,现在包含接收到的数据。缓冲区的 position 会更新到接收数据的末尾。缓冲区的 limit 不会改变。
抛出
异常

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

每当遇到重定向时调用此方法。此方法仅在调用 UrlRequest.start()onResponseStarted() 之间调用。重定向响应的正文(如果有)将被忽略。在同步或异步调用 URLRequest 的 UrlRequest.followRedirect() 方法之前,不会跟随重定向。

参数
request 正在重定向的请求。
info 响应信息。
newLocationUrl 请求重定向到的位置。
抛出
异常

public final void onResponseStarted (UrlRequest request, UrlResponseInfo info)

在收到所有重定向后的最终一组标头时调用此方法。每个请求仅调用一次。除了 onCanceled() 之外,在此方法返回之前,不会为该请求调用其他 UrlRequest.Callback 方法,包括 onSucceeded()onFailed(),直到调用 UrlRequest.read() 尝试开始读取响应正文。

参数
request 开始获取响应的请求。
info 响应信息。
抛出
异常

public final void onSucceeded (UrlRequest request, UrlResponseInfo info)

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

参数
request 成功的请求。
info 响应信息。

受保护方法

protected abstract void onBodyChunkRead (UrlResponseInfo info, ByteBuffer bodyChunk)

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

参数
info 响应信息。
bodyChunk 包含接收到数据的缓冲区,已反转以便读取。
抛出
异常 如果在处理读取完成时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException),并将抛出的异常设置为 CallbackException 的原因。

protected abstract void onCanceled (UrlResponseInfo info)

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

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

protected abstract void onFailed (UrlResponseInfo info, CronetException exception)

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

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

protected abstract void onResponseStarted (UrlResponseInfo info)

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

参数
info 响应信息。
抛出
异常 如果在处理响应启动时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException),并将抛出的异常设置为 CallbackException 的原因。

protected abstract void onSucceeded (UrlResponseInfo info)

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

参数
info 响应信息。

protected abstract boolean shouldFollowRedirect (UrlResponseInfo info, String newLocationUrl)

每当遇到重定向时调用此方法。此方法仅在调用 UrlRequest.start()onResponseStarted() 之间调用。重定向响应的正文(如果有)将被忽略。

参数
info 响应信息。
newLocationUrl 请求重定向到的位置。
返回值
  • 如果应跟随重定向,则返回 true;如果应取消请求,则返回 false。
抛出
异常 如果在处理重定向时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException),并将抛出的异常设置为 CallbackException 的原因。