request.downloadFile的url兼容处理

​request.downloadFile调用的时候,如果传了url地址为

https://xxxx.xxx.huawei.com.cn/xxx/service/project/app-xhorse-java/ControlPannelWeb/images/titleImages/KEY TOOL PLUS CN(1).jpg

downloadTask.on(‘fail’)回调会立马错误码为8的未知类型错误。

如果是普通的正常链接,则可以正常进行到downloadTask.on(‘complete’)的那一步。

这个可以改吗,因为这个链接是一系列的图片请求下载地址,是不可能去掉空格请求的。其他项目也是拿这类似的地址去请求下载图片显示。HarmonyOS的直接报错了。​

HarmonyOS
16h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

url中含有特殊字符空格,在调用downloadFile前需要转义一下,调试如下代码会走on(‘complete’)逻辑。

let url2 = "https://xxxx.xxx.huawei.com.cn/xxx/service/project/app-xhorse-java/ControlPannelWeb/images/titleImages/KEY TOOL PLUS CN(1).jpg" 
let encodedUrl = encodeURI(url2); 
try { 
  request.downloadFile(getContext(), { url: encodedUrl }).then((data: request.DownloadTask) => { 
    let downloadTask: request.DownloadTask = data; 
    let completeCallback = () => { 
      console.info('Download task completed.'); 
    }; 
    downloadTask.on('complete', completeCallback); 
 
    let failCallback = () => { 
      console.info('Download task fail.'); 
    }; 
    downloadTask.on('fail', failCallback); 
  }).catch((err: BusinessError) => { 
    console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 
  }) 
} catch (err) { 
  console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 
}
分享
微博
QQ
微信
回复
8h前
相关问题
HarmonyOS request.downloadFile报错
402浏览 • 1回复 待解决
requestdownloadFile与Task有什么区别
1715浏览 • 1回复 待解决
如何处理应用存在URL硬编码?
763浏览 • 1回复 待解决
LLVM兼容范围都有哪些版本
168浏览 • 1回复 待解决
前端编译后文件是否都能兼容
36浏览 • 1回复 待解决
HarmonyOS react-native-fs不支持downloadFile
273浏览 • 1回复 待解决
通过webView修改iframeURL
772浏览 • 1回复 待解决
HarmonyOS方法兼容问题
282浏览 • 1回复 待解决
使用request下载文件方式
469浏览 • 1回复 待解决
对指定url图片进行下载保存
888浏览 • 1回复 待解决
HarmonyOS 4.0 Next是否兼容Java开发方式?
5577浏览 • 2回复 待解决
request和requestInStream使用边界问题
2191浏览 • 1回复 待解决