Держите сеанс между 2 экземплярами дооснащения - PullRequest
0 голосов
/ 09 января 2020

В моем приложении я хотел бы абстрагировать запросы к моему API. Однако, чтобы получить доступ к моему API, пользователь должен войти в систему, и сервер отправляет обратно cook ie в форме JSESSIONID.

Поэтому у меня есть первый экземпляр Retrofit, созданный для этого с использованием интерфейса, содержащего способы входа пользователя в систему:

interface MyService {
    @POST("api/login" )
    fun login(@Header("cred")id: String): Completable

    companion object {
        operator fun invoke(): MyService {
            val interceptor = HttpLoggingInterceptor()
            interceptor.level = HttpLoggingInterceptor.Level.BODY

            val cookieHandler = CookieManager()

            val client = OkHttpClient.Builder().addNetworkInterceptor(interceptor)
                .cookieJar(JavaNetCookieJar(cookieHandler))
                .connectTimeout(10, TimeUnit.SECONDS)
                .writeTimeout(10, TimeUnit.SECONDS)
                .readTimeout(30, TimeUnit.SECONDS)
                .build()

            return Retrofit.Builder()
                .baseUrl("http://mytestapi.com")
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(client)
                .build()
                .create(MyService::class.java)
    }
}

Я хотел бы создать второй интерфейс Retrofit, который позволит мне выполнять очень специфичные c запросы, но для этого пользователь должен войти в систему. .

Как я могу передать маркер MyService для входа в мою вторую модификацию?

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