收藏
回答

小程序太阳码 B接口有时返回的图片二进制流数据不完整导致前端图片显示失败

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug 获取小程序太阳码接口B 客户端 ios 6.7.2 2.2.5

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

通过小程序二维码接口B,有时可以拿到小程序二维码,有时拿不到。具体是当无法显示二维码时我发现微信返回给我的流文件大小只有109字节,应该是流文件不完整。

- 预期表现

凌晨时查询二维码几乎每次都能成功显示,白天查询很容易问题重现。

- 复现路径

只要在白天调用B接口就容易重现。

- 提供一个最简复现 Demo



我后端使用了nodejs,相关代码如下:

let data = {
              scene: theStudent._id.toString()
           };
 
           request({
                      method: 'POST',
                      uri: `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${accessToken}`,
                      json: true,
                      body: data
                  })
          .pipe(fs.createWriteStream(filePath))

          .on('finish', () => {

            //在这里处理流文件逻辑。我发现有时流文件大小只有109字节,这时前端无法渲染;有时有100多K字节,前端可以成功渲染。所以我怀疑是微信返回的流文件不完整

                          
          })
          .on('error', (reason) => {
                        log.error(`miniUtil->getMiniQrCode__ FAILED 1. Reason = ${JSON.stringify(reason)}`);
                        reject(reason);
          });





这个问题困扰我很久了,以前以为是request的pipe方法用的不对,网上搜了很多文章发现上面代码里pipe用法是正确的,所以现在开始怀疑是微信返回的流文件不完整了,希望官方技术支持能看一下,谢谢啦。

最后一次编辑于  2018-09-13
回答关注问题邀请回答
收藏

1 个回答

  • Chris
    Chris
    2018-09-15

    没有人遇到类似问题吗?

    官方的技术人员可以解答一下吗?

    2018-09-15
    有用
    回复 1
    • Good
      Good
      2019-07-05

      遇到了!我午饭后这个时间试,一直是100左右的二进制流。

      2019-07-05
      回复
登录 后发表内容