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)
请求成功完成时调用此方法。

Protected 方法摘要

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.read() 尝试继续读取响应体之前,不会调用请求的任何其他 UrlRequest.Callback 方法,包括 onSucceeded()onFailed()

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

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

每当遇到重定向时,都会调用此方法。只有在调用 UrlRequest.start()onResponseStarted() 之间,才会调用此方法。重定向响应体(如果存在)将被忽略。直到同步或异步调用 URLRequest 的 UrlRequest.followRedirect() 方法后,才会跟随重定向。

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

public final void onResponseStarted (UrlRequest request, UrlResponseInfo info)

接收到所有重定向后的最终请求头集合时,会调用此方法。每个请求仅调用一次。除了 onCanceled() 之外,在调用 UrlRequest.read() 尝试开始读取响应体之前,不会调用请求的任何其他 UrlRequest.Callback 方法,包括 onSucceeded()onFailed()

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

public final void onSucceeded (UrlRequest request, UrlResponseInfo info)

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

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

Protected 方法

protected abstract void onBodyChunkRead (UrlResponseInfo info, ByteBuffer bodyChunk)

每当读取了部分响应体时,都会调用此方法。即使尚未完全读取整个响应体,也可能只填充部分缓冲区。缓冲区已准备好读取。内部会重用缓冲区,因此实现类不应存储缓冲区或在除本方法实现之外的任何地方使用它。

参数
info 响应信息。
bodyChunk 包含接收到的数据并已翻转以便读取的缓冲区。
抛出
Exception 如果在处理读取完成时发生错误。将调用 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 响应信息。
抛出
Exception 如果在处理响应开始时发生错误。将调用 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。
抛出
Exception 如果在处理重定向时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException) 方法,其中抛出的异常被设置为 CallbackException 的原因。