Rxjava2+Retrofit2请求验证码,请求头加入JSESSIONID。

本文介绍了如何利用Rxjava2和Retrofit2进行网络请求,特别是在请求验证码时,结合OkHttp拦截器处理服务器的JSESSIONID。通过设置请求头,确保每次请求都携带Session ID,从而实现会话维持。同时,还提到了使用Glide加载Bitmap的方法。

Rxjava2 Retrofit2 OkHttp3 简直就是绝配。凡是晚上不能解决的BUG,都会来此记录一下

请求验证码,Glide 方式加载验证码Bitmap,

Glide.with(this)
                .load(Constants.CODE_URL) //验证码接口
                .asBitmap()
                .skipMemoryCache(true)  //跳过内存缓存,为了可以切换验证码
                .diskCacheStrategy(DiskCacheStrategy.NONE)

                .into(new SimpleTarget<Bitmap>() {
                    @Override
                    public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                        ivCode.setImageBitmap(resource);
                    }
                });

验证码,是可以正常加载,但是天真了,验证码一个接口,登录是一个接口,请求登录接口返回验证码验证失败,服务器通过Session 在服务器端记录信息确定用户身份。

原理:服务器执行Session 机制会生成Session的id 值,此id值会发送给客户端,客户端请求的时候把这个id值放到Http请求头中,客户端会把这个Id值用Cookie 存下来。android 端用SharedPrefence 存放这个cookie (cookie 欺骗?)

所以在请求头添加JSESSIONID,可以通过OkHttp的拦截器


                
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值