Ввести перехватчик в модифицированной службе с Guice - PullRequest
0 голосов
/ 27 октября 2019

У меня есть перехватчик файлов 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...