我有一个cookie拦截器,用于在Retrofit2请求中拦截和注入cookie。我正在使用Guice for DI。我在BaseService
类中创建Retrofit2和OkHttp客户端,然后在后续服务中扩展该类。这是我在BaseService
@ScenarioScoped
open class BaseService @Inject constructor() {
var interceptor: CookiesInterceptor
init {
interceptor = CookiesInterceptor()
}
private fun buildHttpOkClient(): OkHttpClient {
return OkHttpClient.Builder()
.addNetworkInterceptor(interceptor)
.build()
}
fun buildRetrofitClient(): Retrofit {
return Retrofit.Builder()
.baseUrl(DEV_URL)
.client(buildHttpOkClient())
.build()
}
}
接下来,我在BaseService
和UserService
中扩展ToolService
。这两个服务的实例在一个类中用于发出后续请求。当UserService
发出请求时,拦截器将注入并拦截cookie。但是,当第二项服务ToolService
进行下一个调用时,则interceptor
的{{1}}实例将不存储任何cookie。
我在BaseSerivce
中正确配置拦截器。我怎样才能使它的状态在两个服务中都可以访问?
我正在使用Kotlin,Retrofit2和Guice。
BaseService
来自Cucumber-JVM(@ScenarioScoped
)