微信小程序-文件流图片处理

文章讲述了在使用微信小程序请求后端接口获取图形验证码时,如何处理正常返回文件流图片和接口异常时返回JSON数据的过程,包括错误捕获和Base64编码的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后端接口正常情况返回文件流图片,异常时返回json

返回示例:

// 获取图形验证码
  getCaptchaImage(){
    const that = this
    wx.showLoading({ title: '加载中' })

    wx.request({
      url: 'xxxxxx',
      method: "POST",
      data: { a: 123 },
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      responseType: 'arraybuffer',
      success: (res)=>{
        if(res && res.data){
          try {
            // 当接口返回的是文件流时,下面的解析会报错
            let unit8Arr = new Uint8Array(res.data)
            let encodedString = String.fromCharCode.apply(null, unit8Arr)
            let decodedString = decodeURIComponent(escape(encodedString))
            let result = JSON.parse(decodedString)
            if(!result.success){
              wx.showToast({
                 title: '操作频繁,请稍后再试',
                 icon: 'none'
              })
            }
          } catch (err) {
            let base64 = wx.arrayBufferToBase64(res.data)
            let captchaImage = "data:image/png;base64," + base64
            that.setData({ captchaImage })
          }
        }else{
          wx.showToast({
             title: '图形验证码获取失败',
             icon: 'none'
          })
        }
      },
      complete: ()=>{
        wx.hideLoading()
      }
    })
  },

参考:https://www.cnblogs.com/letleon/p/14143158.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值