android解决使用glide加载图片异常的问题(需要用添加cookie头部作为验证)

本文介绍了在Android开发中如何解决使用Glide加载需要用户登录验证的图片问题。通过获取登录接口的Cookie,并使用自定义的GlideUrl添加Cookie头,确保图片能够正确加载。详细步骤包括登录时保存Cookie,然后在加载图片时使用该Cookie,从而实现图片的正常显示。
摘要由CSDN通过智能技术生成

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);

  到此问题解决,有问题欢迎批评指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪の星空朝酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值