推广平台网站制作,网站域名价格,建站开发,网易邮箱163登录概述#xff1a;
我们开发微信小程序#xff0c;从后台获取图片现实的时候#xff0c;通常采用http get的方式#xff0c;例如以下代码
image classuser_logo src{{logoUrl}}/image变量logoUrl为ur图片l的请求地址 但是对于很多…概述
我们开发微信小程序从后台获取图片现实的时候通常采用http get的方式例如以下代码
image classuser_logo src{{logoUrl}}/image变量logoUrl为ur图片l的请求地址 但是对于很多情况不希望图片被公开访问需要登录才能获取到的图片这种方式就不行了。 需要在请求中添加相关的cookie信息才行
请求
通常的做法是自定义http head如下所示
util_http_get_imagedata_show(inurl, callImageDataFun, cl) {var headerObj {Cookie: getApp().globalData.coockieStr};wx.request({url: inurl,method: get,responseType: arraybuffer,header: headerObj,success: function (res) {callImageDataFun(res.data, cl);}});
}callSetItemsShowData(imagedata, cl) {var picData data:image/png;base64, wx.arrayBufferToBase64(imagedata);cl.setData({logoUrl : picData});
},getApp().globalData.coockieStr 是登录的时候通过其他方式获取的session关联的cookie保存在全局变量。
测试调用
this.util_http_get_imagedata_show(tmpStr, this.callSetItemsShowData, this);优缺点分析
优点把当前session关联的cookie代入通过正确登录能够很好地在当前session下获取图片控制图片不被非法获取。
缺点需要额外的手动写http请求过程增加代码量。特别注意的是对于图片比较大的(超过1M)导致小程序setData渲染效率低。如下图小程序开发工具上报警告
为了解决这个性能问题本人苦思冥想我的下一篇文章微信小程序获取图片使用session下篇地址https://blog.csdn.net/shenweihong/article/details/144972026