记录一次Glide加载网络图片失败class com.bumptech.glide.load.engine.GlideException: Failed to load resource(真正终结篇)

前段时间项目遇到一个很奇怪的问题,因为另外一个项目之前用glide加载网络图片是正常的,同样的代码,换了项目就是加载不了,用PC浏览器能打开,查了很久依然无获。错误信息如下:


com.bumptech.glide.load.engine.GlideException: Failed to load resource
                                                     Cause (1 of 6): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{DirectByteBuffer->Object->Drawable}, DATA_DISK_CACHE, https://xxxxx/97/download?preview=true
                                                            Cause (1 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->GifDrawable->Drawable}
                                                            Cause (2 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->Bitmap->Drawable}
                                                            Cause (3 of 3): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{DirectByteBuffer->BitmapDrawable->Drawable}
 

 

 

很多小伙伴习惯一通百度,结果都是无果,遇到奇葩的事情最好的结合后台人员。那既然用PC浏览器能打开,我们就用浏览器看看,(这里大家还是熟悉一下前端页面查看)来............

一步:

复制网络图片链接:https://xxxxx/97/download?preview=true到浏览器

两步:

F12    再  F5    -就如下图:

 

眼尖的同学是不是看出啥没有。通常不管是http还是https 有带header与不带之分,一般情况是不带是,后台不做校验,那么轻而易举加载出来,鬼知道那天后台哥们想不开了。。。。。。给你加点小东西。。。。。

接下来骚操作:

var setCookie = UserHelper().getCookieFromFile(viewHolder.itemView.context)( 保存本地的cookie信息)

var path = GlideUrl(path, LazyHeaders.Builder()
        .addHeader("device-type", "android")
        .addHeader("Cookie", setCookie!!)
        .build())
Glide.with(viewHolder.itemView.context)
        .load(path)
        .centerCrop()
        .placeholder(R.color.app_color_f6)
        .diskCacheStrategy(DiskCacheStrategy.ALL)
        .into(viewHolder.mImg)

如此,大功告成。送人洞房。

 

 

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值