一次搞定!整理 volley 和 retrofit2 如何发送 cookie id 数据的

本文探讨如何在Android应用中,从Volley迁移到Retrofit2时,处理Cookie中的session ID数据。文章介绍了session ID的概念,并详细讲解了在Retrofit2中如何设置header发送cookie,同时提及了OkHttp3的使用技巧,以及Volley和Retrofit2在项目管理上的优缺点。
摘要由CSDN通过智能技术生成

用volley 就是觉得可以简单不用序列化数据,用retrofit2 就是整合了.接口,数据的序列化.适合大点的项目管理

用retrofit2 写了一个新闻数据库的一个App ,要将以前用 volley写的 用户管理, 转到 retrofit2 ,新闻模块
就要求 retrofit2 发送 cookie 中保存的,session id 数据

Andorid app 中保存,cookie 的方式就是 用本地存储 sp,方式, 数据库网关用 node.js 做的web 服务器 ,开启sesson 支持实现 用户免登.现在我做的的这个 app 还没有转到 https ,所以还没有用到 okhttp3 拦截器的复杂功能.恰只使用 它的添加header ,的简单功能

  • 我先摆个书袋子.
    所谓 session id 就是,node.js web 端识别每次访问者的一种加密串,好像是上车后的"票根"或者说是,出门的"卡票",你每次登录同一个网址如果没有,保存这个"票" 下次,再来就没有办法证明你来过,所以这个"票根"
    每次都是"新的" 如果你没有将你保存的"票根"提供给 web .识别.web 就不能知道你来没来过.下面web
    就可以凭借 这个session id ,将后面登录,后的权限逻辑应用于你的请求.

简单的模式就是 ,你某一次访问web ,如果登录输入密码,如果你的app将此次web 给的 session id 串,
(这个串就是http head 中的 cookie id 数据, 保存下,存储在你本地的 sp ,中 )保存. 你下次app 登录
这个web 必需用使用它,也就是 加在你的http head 中

okhttp3 (是retrofit2 配合使用的)

.addHeader("Cookie", cookieStr)
.addHeader("Content-Type", "application/x-www-form-urlencoded")

这里原来的有一个坑,就是使用了 header 而不是 addHeader ,
不知道是不是版本的问题.

volley 中

 					 public String getBodyContentType() {
                        return "application/x-www-form-urlencoded";
                    }
           
                    public Map<String, String> getHeaders() throws AuthFailureError {
                        HashMap localHashMap=new HashMap();
                        localHashMap.put("Cookie",user.get(mSessionManager.SESSION_ID));
                        return localHashMap;
                    }
  • volley 是一个很好的入门,
    因为volley 使用的时候,你只用在一个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值