public interface Interceptor<T> extends OnSuccess<T>, OnError, OnProgress, OnLoadCookie, OnSaveCookie, OnRetry, OnRedirection
拦截器在请求的初始化、发送请求前、发送成功、发送失败等生命周期中都会被调用
总的生命周期回调函数调用顺序如下:
Forest接口方法调用 -> ¦ onInvokeMethod -> ¦ beforeExecute -> ¦ 如果返回 false -> 中断请求,直接返回 ¦ 如果返回 true -> ¦ 发送请求 -> ¦ 发送请求失败 -> ¦ retryWhen -> ¦ 返回 true 则触发请求重试 ¦ 返回 false 则跳转到 [onError] ¦ onError -> 跳转到 [afterExecute] ¦ 发送请求成功 -> ¦ 等待响应 -> ¦ 接受到响应 -> ¦ retryWhen -> ¦ 返回 true 则触发请求重试 ¦ 返回 false 判断响应状态 -> ¦ 响应失败 -> onError -> 跳转到 [afterExecute] ¦ 响应成功 -> onSuccess -> 跳转到 [afterExecute] ¦ afterExecute -> 退出 Forest 接口方法,并返回数据
Modifier and Type | Method and Description |
---|---|
default void |
addAttribute(ForestRequest request,
String name,
Object value)
添加请求在本拦截器中的 Attribute 属性
|
default void |
afterExecute(ForestRequest request,
ForestResponse response)
默认回调函数: 请求完成后(成功/失败后) 调用该方法
|
default boolean |
beforeExecute(ForestRequest request)
默认回调函数: 请求执行前调用该方法
|
default Object |
getAttribute(ForestRequest request,
String name) |
default <T> T |
getAttribute(ForestRequest request,
String name,
Class<T> clazz) |
default Double |
getAttributeAsDouble(ForestRequest request,
String name) |
default Float |
getAttributeAsFloat(ForestRequest request,
String name) |
default Integer |
getAttributeAsInteger(ForestRequest request,
String name) |
default String |
getAttributeAsString(ForestRequest request,
String name) |
default InterceptorAttributes |
getAttributes(ForestRequest request)
获取请求在本拦截器中的 Attribute 属性
|
default void |
onError(ForestRuntimeException ex,
ForestRequest request,
ForestResponse response)
默认回调函数: 请求失败后调用该方法
|
default void |
onInvokeMethod(ForestRequest request,
ForestMethod method,
Object[] args)
默认回调函数: 接口方法执行时调用该方法
|
default void |
onLoadCookie(ForestRequest request,
ForestCookies cookies)
默认回调函数: 在发送请求加载Cookie时调用该方法
|
default void |
onProgress(ForestProgress progress)
默认文件上传或下载监听传输进度时调用该方法
|
default void |
onRedirection(ForestRequest<?> redirectReq,
ForestRequest<?> prevReq,
ForestResponse<?> prevRes)
默认回调函数:在请求重定向时触发
|
default void |
onRetry(ForestRequest request,
ForestResponse response)
默认回调函数: 在触发请求重试时执行
|
default void |
onSaveCookie(ForestRequest request,
ForestCookies cookies)
默认回调函数: 在请求响应成功后,需要保存Cookie时调用该方法
|
default void |
onSuccess(T data,
ForestRequest request,
ForestResponse response)
默认回调函数: 请求成功后调用该方法
|
default void onInvokeMethod(ForestRequest request, ForestMethod method, Object[] args)
默认为什么都不做
request
- Forest请求对象method
- Forest方法对象args
- 方法调用入参数组default boolean beforeExecute(ForestRequest request)
其返回值为布尔类型,可以控制请求是否继续执行
默认为什么都不做
request
- Forest请求对象true
: 继续执行该请求, 否则中断请求default void afterExecute(ForestRequest request, ForestResponse response)
默认为什么都不做
request
- Forest请求对象response
- Forest响应对象default void onSuccess(T data, ForestRequest request, ForestResponse response)
默认为什么都不做
default void onError(ForestRuntimeException ex, ForestRequest request, ForestResponse response)
默认为什么都不做
default void onRetry(ForestRequest request, ForestResponse response)
默认为什么都不做
default void onProgress(ForestProgress progress)
默认为什么都不做
onProgress
in interface OnProgress
progress
- Forest进度对象default void onRedirection(ForestRequest<?> redirectReq, ForestRequest<?> prevReq, ForestResponse<?> prevRes)
默认为什么都不做
onRedirection
in interface OnRedirection
redirectReq
- 进行重定向的新请求prevReq
- 上一个请求prevRes
- 上一个请求的响应default void onLoadCookie(ForestRequest request, ForestCookies cookies)
默认为什么都不做
onLoadCookie
in interface OnLoadCookie
request
- Forest请求对象cookies
- Cookie集合, 需要通过请求发送的Cookie都添加到该集合default void onSaveCookie(ForestRequest request, ForestCookies cookies)
默认为什么都不做
onSaveCookie
in interface OnSaveCookie
request
- Forest请求对象cookies
- Cookie集合,通过响应返回的Cookie都从该集合获取default InterceptorAttributes getAttributes(ForestRequest request)
request
- Forest请求对象InterceptorAttributes
对象实例default void addAttribute(ForestRequest request, String name, Object value)
request
- Forest请求对象name
- 属性名称value
- 属性值default Object getAttribute(ForestRequest request, String name)
default <T> T getAttribute(ForestRequest request, String name, Class<T> clazz)
default String getAttributeAsString(ForestRequest request, String name)
default Integer getAttributeAsInteger(ForestRequest request, String name)
default Float getAttributeAsFloat(ForestRequest request, String name)
default Double getAttributeAsDouble(ForestRequest request, String name)
Copyright © 2022. All rights reserved.