介绍
目前许多网络图片资源有防盗链功能,需要在请求头中设置正确的Referer。本模块使用了第三方库imageknife,通过在请求头中添加Referer来获取防盗链图片功能。同时我们可以设置请求头中的其他参数,比如User-Agent来设置客户端,Origin设置来源,ETag来设置缓存等等。
使用说明:
- 输入需要获取的图片URL和Referer。
- 点击请求,等待下方出现图片。
效果图预览
实现思路
1.在工程入口导入三方库imageKnife,并且进行初始化。
- //
通过ImageKnifeGlobal.getInstance()获取唯一实例。如果此实例不存在,则将ImageKnife注入到当前context中。
if (!ImageKnifeGlobal.getInstance().getImageKnife()) { const
context: Context = getContext(); if (context) {
ImageKnife.with(context); } }
2.自定义请求头需要重新封装RequestOption对象,使用addHeader方法配置请求头,load方法设置需要请求的地址,errorholder方法设置请求失败回调,addListener方法设置成功回调等配置,最后在成功/失败回调中的图片赋值给图片组件。
// TODO: 知识点:自定义RequestOption来获取image图片。
const request = new RequestOption();
// TODO: 知识点:使用addHeader添加请求头。
request.addHeader('Referer', ref);
request.skipMemoryCache(true)
.diskCacheStrategy(new NONE()) // 取消磁盘缓存
.errorholder($r(