UrlRequest.Callback

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

Cronet 用户扩展此类以接收指示 UrlRequest 处理进度的回调。构建 UrlRequest 时,此类的实例会传递到 UrlRequest.Builder 的构造函数中。

注意:所有方法都将在构建 UrlRequest 期间使用的 Executor 的线程上调用。

公共构造函数摘要

公共方法摘要

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

继承的方法摘要

公共构造函数

public Callback ()

公共方法

public void onCanceled (UrlRequest request, UrlResponseInfo info)

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

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

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

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

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

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

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

参数
request 已接收数据的请求。
info 响应信息。
byteBuffer 传递给 UrlRequest.read() 的缓冲区,现在包含接收到的数据。缓冲区的 position 会更新到接收到的数据末尾。缓冲区的 limit 不会改变。
抛出
Exception 如果处理读取完成时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException),其中抛出的异常会设置为 CallbackException 的原因。

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

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

参数
request 正在重定向的请求。
info 响应信息。
newLocationUrl 请求重定向到的位置。
抛出
Exception 如果处理重定向时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException),其中抛出的异常会设置为 CallbackException 的原因。

public abstract void onResponseStarted (UrlRequest request, UrlResponseInfo info)

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

参数
request 已开始获取响应的请求。
info 响应信息。
抛出
Exception 如果处理响应开始时发生错误。将调用 onFailed(UrlRequest, UrlResponseInfo, CronetException),其中抛出的异常会设置为 CallbackException 的原因。

public abstract void onSucceeded (UrlRequest request, UrlResponseInfo info)

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

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