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 响应信息。