У меня есть перехватчик файлов cookie для перехвата и ввода файлов cookie в запросах Retrofit2. Я использую Guice для DI. Я создаю клиенты Retrofit2 и OkHttp в классе BaseService
, а затем расширяю этот класс в последующих сервисах. Вот как я инициализирую перехватчик в 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
делает запрос, перехватчик вводит и перехватывает куки. Но когда вторая служба, ToolService
совершает следующий вызов, то экземпляр interceptor
из BaseSerivce
не хранит файлы cookie. Я борюсь с правильным созданием перехватчика в BaseService
. Как мне это сделать, чтобы его состояние было доступно в обеих службах? Я использую Kotlin, Retrofit2 и Guice. @ScenarioScoped
от Cucumber-JVM (cucumber.runtime.java.guice.ScenarioScoped
)