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
2024-11-08 09:12:21
浏览
收藏 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
微信
回复
2024-11-08 17:14:52
相关问题
HarmonyOS request.downloadFile报错
874浏览 • 1回复 待解决
requestdownloadFile与Task有什么区别
1853浏览 • 1回复 待解决
如何处理应用存在URL硬编码?
988浏览 • 1回复 待解决
HarmonyOS react-native-fs不支持downloadFile
467浏览 • 1回复 待解决
前端编译后文件是否都能兼容
239浏览 • 1回复 待解决
LLVM兼容范围都有哪些版本
293浏览 • 1回复 待解决
使用request下载文件方式
796浏览 • 1回复 待解决
HarmonyOS方法兼容问题
431浏览 • 1回复 待解决
通过webView修改iframeURL
969浏览 • 1回复 待解决