retrofit2.0 cookie 的持久化

response header 中拿到 Set-Cookie 然后保存到文件

String token = response.headers().get("Set-Cookie");
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("token", token);
editor.apply();

每个请求都携带上 cookie

OkHttpClient okHttpClient = new OkHttpClient.Builder().cookieJar(new CookieJar() {

   @Override
   public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {

   }

   @Override
   public List<Cookie> loadForRequest(HttpUrl url) {
       List<Cookie> cookies = new ArrayList<>();
       SharedPreferences sp = context.getSharedPreferences("user", Context.MODE_PRIVATE);
       String token = sp.getString("token", null);

       if (token != null) {
           Cookie cookie = Cookie.parse(url, token);
           cookies.add(cookie);
       }
       
       return cookies;
   }
}).build();

retrofit = new Retrofit.Builder()
       .client(okHttpClient)
       .baseUrl(BuildConfig.SERVER_URL)
       .addConverterFactory(GsonConverterFactory.create())
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
       .build();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,087评论 19 139
  • 今天webryan给team做了一个关于HTTP cookie的分享,从各个方面给大家介绍一下大家耳熟能详的Coo...
    秒赞不是偶然阅读 8,733评论 0 20
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,393评论 1 17
  • 暗恋是一个人的兵荒马乱,但是有时候,暗恋也可以是两情相悦的。 幸福的家庭每每都相似,不幸的家庭各有各的不幸。 暗恋...
    七梦的悠闲时光阅读 1,630评论 63 38
  • 转眼又是一个忙碌的6月,掐指一算,半年过去了。盘点一下年初的计划,完成了多少还剩下多少。 自从买房后,每年过年都会...
    小草源阅读 218评论 0 0