当前位置: 首页 > article >正文

微信小程序获取图片使用session(上篇)

概述:

我们开发微信小程序,从后台获取图片现实的时候,通常采用http get的方式,例如以下代码

<image class="user_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


http://www.kler.cn/a/472174.html

相关文章:

  • spring mvc源码学习笔记之九
  • vue3运行时执行过程步骤
  • 将txt转成excel正则化公式的调整
  • LeetCode 3019.按键变更的次数:遍历(转小写)
  • Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问
  • (一)使用 WebGL 绘制一个简单的点和原理解析
  • openwebui接入deepseekv3
  • spring boot解决swagger中的v2/api-docs泄露漏洞
  • 你使用过Wireshark抓包工具吗?
  • 【笔记】算法记录
  • 2.STM32F407ZGT6-外部中断
  • 怎么管理电脑usb接口,分享四种USB端口管理方法
  • 自动化之数据库:docker部署mongo,为下一步的使用打下基础
  • MAX3232芯片介绍
  • Elixir语言的并发编程
  • docker对外发布服务,docker compose使用
  • opencv 学习(1)
  • Python 模拟登录网页,或者编写爬虫时模拟登录的详细总结
  • linux 使用 MySQL Performance Schema 和 Prometheus + Grafana 来监控 MySQL 性能
  • ZooKeeper Java API操作
  • 游戏引擎学习第77天
  • Elasticsearch:搜索相关性
  • Spring Boot 多环境配置与切换
  • Electron使用记录
  • 深入理解Mybatis原理》MyBatis的sqlSessi
  • 【随时随地学算法】本地部署hello-algo结合内网穿透远程学习新体验