创建一个Intercept

Intercept是用于放在 @API 注解里的拦截器,作用于整个类。让我们来看下一个简单的例子吧。

  1. class TestInterceptor : Interceptor {
  2. override suspend fun intercept(resource: Resource): Boolean {
  3. resource.setCookie("before", "interceptor")
  4. return true
  5. }
  6. override suspend fun response(resource: Resource): Resource {
  7. return resource
  8. }
  9. }

创建一个类后需要实现 Interceptor 类,当请求进来时会自动执行 intercept 方法中的内容,如果里面返回 false 则会自动执行 response 方法,如果返回 true 则进入下一阶段。

使用Interceptor

使用 Interceptor 也非常简单,只需要在 @API 注解中配置下即可。

  1. @API("/",interceptor = arrayOf(TestInterceptor::class))