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的拦截器