android解决使用glide加载图片异常的问题(需要用添加cookie头部作为验证)
Posted Tobey_r1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android解决使用glide加载图片异常的问题(需要用添加cookie头部作为验证)相关的知识,希望对你有一定的参考价值。
android解决使用glide加载图片异常的问题(需要用添加cookie头部作为验证)
遇到的问题
加载图片的代码:
RequestOptions options = new RequestOptions()
.priority(Priority.NORMAL) //指定加载的优先级,优先级越高越优先加载,
// 缓存原始数据
.diskCacheStrategy(DiskCacheStrategy.RESOURCE);
Glide.with(this).load(SPUtils.get("userImg","").toString()).apply(options).into(imageView);
我在logat上点击这个图片链接,发现是需要用户登录的,说明需要cookie来保存一下登录信息,所以我们可以在登录成功的时候将对应的cookie保存,在加载图片的时候引用到。
解决办法,首先获取网页对应cookie
首先一个登录的接口访问及返回:
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().url("").build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback()
@Override
public void onFailure(Call call, IOException e)
@Override
public void onResponse(Call call, okhttp3.Response response) throws IOException
Headers headers = response.headers();
List<String> cookies = headers.values("Set-Cookie");
String session = cookies.get(0);
//这里可以用SharedPrefences来存储这个cookie用来glide请求的头部认证
);
使用GlideUrl
自定义GlideUrl来解决问题
GlideUrl glideUrl = new GlideUrl("http://baidu.com",
new LazyHeaders.Builder().addHeader("Cookie","你存储的cookie").build());
Glide.with(this).load(glideUrl).apply(options).into(imageView);
到此问题解决,有问题欢迎批评指正!
以上是关于android解决使用glide加载图片异常的问题(需要用添加cookie头部作为验证)的主要内容,如果未能解决你的问题,请参考以下文章
glide4.0以上在Android9.0以上加载图片不显示解决方案
Android RecyclerView利用Glide加载大量图片into(Target)导致OOM异常
Android使用Glide加载https链接的图片不显示的原因