借助Guice在翻新服务中注入拦截器

时间:2019-10-26 23:25:39

标签: kotlin retrofit2 guice cucumber-jvm

我有一个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()
    }
}

接下来,我在BaseServiceUserService中扩展ToolService。这两个服务的实例在一个类中用于发出后续请求。当UserService发出请求时,拦截器将注入并拦截cookie。但是,当第二项服务ToolService进行下一个调用时,则interceptor的{​​{1}}实例将不存储任何cookie。 我在BaseSerivce中正确配置拦截器。我怎样才能使它的状态在两个服务中都可以访问? 我正在使用Kotlin,Retrofit2和Guice。 BaseService来自Cucumber-JVM(@ScenarioScoped

0 个答案:

没有答案