如图, 我在小程序中使用wx.downloadFile下载服务器上的文件,开发工具中还有ios端都可以正常下载,而在安卓端就会出现图2中的错误,statusCode为400,请教各位该如何解决?代码如下:
wx.downloadFile({
url: fileUrl,
success(res) {
wx.hideLoading();
console.log("download file success");
console.log(res);
又测试了一下,朋友的小米手机就没问题,难道是我的红米note2太老了?目前怀疑是安卓版本的问题,6.0,5.1的不行,8.0的都没问题。求大神给一个明确解答
我这边遇到的问题是:小程序 真机 下载文件 400状态码,但开发者工具可以
原因:我下载的链接的参数里有=号等特殊字符,开发者工具会对url里的参数进行url编码,但是我通过真机调试查看日志,发现手机不会对参数进行url编码。
解决:手动将url里的参数进行url编码:
url += `?download_info=${encodeURIComponent(attachment.download_info)}`
encodeURIComponent()这个方法是小程序提供的,直接调用这个方法就可以,连引入都不需要
我在安卓端测试也遇到了这个问题。后来发现是因为URL中的文件名包含中文字符。解决方法是先用encodeURI()或encodeURIComponent()方法将URL里的中文都进行编码,就可以了。
请求里的header,设置成header: { "Content-Type": "application/text"},试一下呢?
在网上查到这个了,也试了一下,没用啊。。。
我在同事的小米8手机上也遇到这个问题,改了header内容,application/text或者json,还是继续报400....
楼主可以看下这个帖子
https://developers.weixin.qq.com/community/develop/doc/000e86212ac3285a1788767b85c000?highLine=.unknown
返回的temp文件地址后缀是.unknown,这个得等官方解决了