Сеанс дооснащения Android — файлы cookie

Я использую модификацию для десериализации json-запроса с веб-сервера, и мне нужно создать сеанс (cookie?) в моем приложении (срок действия которого истекает через 120 минут). Проблема в том, что я не знаю, как это реализовать.

private RestAdapter adapter = RestAdapter.Builder().setClient(????).setServer("http://192.168.0.1").build();

Этот сеанс должен сохраняться, только если приложение запущено.

Минимальные требования к SDK: 8.


person Zbarcea Christian    schedule 17.10.2013    source источник
comment
Эй, ты когда-нибудь понял это?   -  person Lion789    schedule 16.03.2014
comment
Я перешел на loopj http://loopj.com/android-async-http/ Это намного лучше.   -  person Zbarcea Christian    schedule 16.03.2014
comment
я ответил на аналогичный вопрос здесь.   -  person Akhil    schedule 16.09.2014


Ответы (1)


Хорошо, вы знаете, что модификация фактически использует okhttp внутри фреймворка.

А вы должны знать "Перехватчик"

Когда вы запускаете okhttp в модификации, вы должны вызвать addInterceptor, как это:

 OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.retryOnConnectionFailure(true);
        builder.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
        builder.writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
        builder.readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
        builder.addInterceptor(new ZCommonIntercepter());

Настройте свой собственный Intercepter, расширяя Intercepter.

И получите sessionId с помощью response.header("Set-cookie"), сохраните его как константу или что-то в своей памяти.

Каждый запрос после этого вы должны удалить исходный заголовок ("cookie")

и addHeader (то, что вы уже сохранили)

Мне жаль, что я не носитель английского языка. Если вы меня не понимаете. Я просто дам вам несколько ключевых слов, вы можете погуглить.

---Ключевые слова---

  • перехватчик в okhttp

  • куки в заголовке запроса или в заголовке ответа

person Jerry.L    schedule 18.02.2017