收藏
回答

wx.request 返回值为 arraybuffer 时长度不正确

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.request 客户端 7.0.3 2.6.1

- 当前 Bug 的表现(可附上截图)


在 Android 平台使用 wx.request 发起网络请求,responseType 为 arraybuffer 时,收到的结果长度与服务端发来的不同,会在服务端结果的基础上在前面补四个0后面补三个0,导致结果无法解析。目前测试结果表明,微信Android客户端 从 6.7.2(基础库2.2.5)开始出现此问题,IOS没有此问题,websocket没有此问题,望解决。



- 预期表现


收到与服务端相同的 bytes 数组


- 复现路径


执行以下代码即可,简单至极


wx.request({

    url: url,

    method: 'POST',

    data: paramsBuffer,

    header: {

        'content-type': 'application/protobuf'

     },

    dataType: 'byte',

    responseType: 'arraybuffer',

    success: function(res) {

        console.log(`Success fetch token : code [${res.statusCode}] data [${new Uint8Array(res.data)}]`);

});

最后一次编辑于  02-21  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • cunjinli
    cunjinli
    02-21

    安卓是必现的么?

    02-21
    赞同
    回复 2
    • 程续缘
      程续缘
      02-21

      是的,我用了小米mix2(Android 8)和 moto (Android 8)试了下都有这个问题。

      02-21
      回复
    • 程续缘
      程续缘
      02-27

      另外,在使用

      recorderManager.onFrameRecorded(function(res) {}); 录音时,收到的 res 也会发生上述情况


      02-27
      回复