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