微信扫码登录

其他登录方式

绑定手机号

注册

我同意用户协议

忘记密码

用户协议

绑定手机号

近期有不法分子打着爱盈利的旗号,制作“爱盈利”名称的App,并伪造爱盈利证件,骗取用户信任,以抖音点赞赚钱或其他方式赚钱为名义,过程中以升级会员获得高佣金为名让用户充值。
爱盈利公司郑重声明:我司没有研发或运营过任何名为“爱盈利”的APP,我司做任务赚钱类产品从没有让任何普通用户充值升级会员。我公司产品均在本网站可查询,请将网站拉至底部,点击“关于我们”可查看爱盈利相关产品与服务。
温馨提示:当遇到此类问题请拨打官方电话或添加官方微信,以免财产损失。爱盈利官网地址:www.aiyingli.com。
  • 推广与合作
X

小程序丨wx.request res.data里的数据和实际数据不同

来源: 3150

使用wx.request 获取服务器上的一个.bin文件。

但是request直接将.bin文件转换为了string  并且string长度和源文件大小不同 请问是什么问题?需要进行别的设置吗?

请求头设置:

  1. Content-Type:

    application/octet-stream


网友回复:

m***:

首先,js 并不是 binary-friendly 的,在 js 中处理二进制数据一向是比较困难的,需要特殊支持。


很好奇你为什么要把一个 .bin 文件传到 js 里,接下来要做什么……


必要的话,可以考虑在服务器端对二进制内容进行 base64 编码,然后在小程序端用 wx.base64ToArrayBuffer() 解码。

胖***:

@maq

感谢你的建议。

如果我可以通过request方式获取一个.bin文件的buffer或者内容 哪我可以通过ble接口进行升级 。

通过console 看到request接口其实已经将整个.bin文件接收但是不知道微信做了什么处理将内容转换为了string  导致内容长度与原文见内容长度不一致

m***:

wx.request() 只会把收到的内容理解为“字符串”(也许还会进一步当做 json 来解析),而且它会假设你发送的内容是 UTF-8 编码的,而事实上你的 .bin 文件不会符合这个预期,所以“转换为字符串”的过程中会出现乱码,长度当然也就变了。


你可以在服务器端先用 base64 编码,到了小程序里再解码。

C***:

楼上正解

胖***:

@maq 我的理解和您预期的是一致的。  感谢你   看来目前只能转换base64 实现这个了。

我并不明白微信为何不设置request()接收类型 就像angularjs一样。


哇塞 官方?@can 有何见解嘛?


爱盈利(aiyingli.com)移动互联网最具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。

评论

相关文章推荐

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 5246 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP备15063977号-2 © 2012-2018 aiyingli.com. All Rights Reserved. 京公网安备 11010102003938号