美文网首页Android-Rxjava&retrofit&dagger
android okhttp3 cookie持久化管理

android okhttp3 cookie持久化管理

作者: S晔枫 | 来源:发表于2017-11-27 20:04 被阅读385次

今天项目遇到一个需求: 处于安全考虑, 要求登录后保存 cookie到本地, 后面所有接口请求时都需要带上 cookie . (ps: 之前还真没遇到过, 所以没太在意, 今天查找了一些资料, 在此记录下来 )

OkHttp3中,对cookie而言,新增了两个类Cookiejar、Cookie两个类. 查看源码你会发现 : 在OkHttpClient创建时,传入这个CookieJar的实现,就能完成对Cookie的自动管理(有兴趣的朋友有空可以去看看).

我使用的是一个封装好的第三方的 依赖库
在 build.gradle 依赖地址:

        compile 'com.github.franmontiel:PersistentCookieJar:v1.0.1'

如果失败可以在 项目build.gradle 加上maven { url "https://jitpack.io" }

        allprojects {
            repositories {
                jcenter()
                maven { url "https://jitpack.io" }
              }
        }

 请求时调用: 
  PersistentCookieJar cookieJar = new PersistentCookieJar(new    SetCookieCache(), new SharedPrefsCookiePersistor(context));

        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .connectTimeout(10, TimeUnit.SECONDS)
                .readTimeout(20, TimeUnit.SECONDS)
                .addInterceptor(new LoginInterceptor())
                .cookieJar(cookieJar)// 设置封装好的cookieJar
                .build();

这样每次请求时, 都会带上保存好的cookie.

相关文章

网友评论

    本文标题:android okhttp3 cookie持久化管理

    本文链接:https://www.haomeiwen.com/subject/bszdbxtx.html