收藏
回答

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

框架类型 问题类型 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)}]`);

});

回答关注问题邀请回答
收藏

2 个回答

  • 小程序运营专员 - cunjin
    小程序运营专员 - cunjin
    2019-02-21

    安卓是必现的么?

    2019-02-21
    有用
    回复 2
    • 续缘
      续缘
      2019-02-21

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

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

      另外,在使用

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


      2019-02-27
      回复
  • 禾店科技
    禾店科技
    2021-04-28

    新版本没有这个问题了哦

    2021-04-28
    有用 1
    回复
登录 后发表内容