HarmonyOS鸿蒙Next中下载文件报错,13400001

HarmonyOS鸿蒙Next中下载文件报错,13400001 最近在测试服务器下载功能,报错13400001,看了报错没找到问题,描述太模糊了

cke_2107.png

代码感觉也没有问题,下面是我的这部分代码

const getObject = async () => {
                const result = obsClient.createSignedUrlSync({
                  Method: HttpMethodType.GET,
                  Bucket: bucketName,
                  Key: objectKey, //指定下载对象名字
                  Expires: 3600
                })
                let downloadTask: request.DownloadTask

                let downloadConfig: request.DownloadConfig = {
                  url: result.SignedUrl,
                  filePath: `${context.filesDir}/downloadresoreces/test.jpg`,

                }
                //下载指定config资源

                try {
                  request.downloadFile(getContext(), downloadConfig).then((data: request.DownloadTask) => {

                    downloadTask = data
                    downloadTask.on('progress', (uploadedSize: number, totalSize: number) => {
                      console.info('Upload delete progress notification.' + 'totalSize:' + totalSize +
                        'uploadedSize:' + uploadedSize)
                    })
                    let CompleteCallback = () => {
                      const statusCode = downloadTask.getTaskInfo()
                      console.info('Download task completed.')
                    }
                    downloadTask.on('complete', CompleteCallback)

                    let FailCallback = (err: number) => {
                      const statusCode = downloadTask.getTaskInfo()
                      console.error(`Failed to download the task. Code: ${err}`)
                    }
                    downloadTask.on('fail', FailCallback)

                  })
                } catch (err) {
                  console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`)
                }

有没有大神看下问题在哪


更多关于HarmonyOS鸿蒙Next中下载文件报错,13400001的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我试了一下你的代码,文件夹名有问题

我把downloadresoreces换成了download文件夹名可以下载

这个不在错误码的文档里,在常见问题里有解释,看下下面这个文档的场景三,文件名过长也会导致此错误

https://developer.huawei.com/consumer/cn/doc/architecture-guides/convenient-life-v1_2-ts_134-0000002397399002#section15527141114518

更多关于HarmonyOS鸿蒙Next中下载文件报错,13400001的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,下载文件报错13400001通常表示网络连接异常或文件服务器不可访问。请检查设备的网络设置,确保网络连接稳定。同时,确认下载链接的有效性,以及设备是否有足够的存储空间。

错误码13400001通常表示网络请求失败,具体是网络不可用或URL格式错误。根据你的代码和截图,问题很可能出在以下几个方面:

  1. URL有效性result.SignedUrl 生成的预签名URL可能已过期或格式不正确。请确保:

    • URL在有效期内(你设置了3600秒)。
    • 直接将该URL粘贴到浏览器或Postman中测试,确认能正常下载文件。
  2. 网络权限:确保应用已声明网络权限。在 module.json5 文件中检查是否有以下配置:

    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
    
  3. 文件路径问题context.filesDir 可能指向应用沙箱目录,但路径拼接需确保目录存在。建议:

    • 使用 fs.mkdirSync() 先创建 /downloadresoreces/ 目录(注意拼写,是"resources"吗?)。
    • 或改用 ohos.file.fs 接口的 getFileDir() 明确获取下载目录。
  4. 请求配置downloadConfig 可补充 header 字段,若服务器有特殊要求(如鉴权)。但预签名URL通常已包含鉴权信息。

快速排查步骤

  • try-catchcatch 块或 FailCallback 中打印完整的错误信息(包括 err.message)。
  • 检查设备网络连接是否正常。
  • 验证预签名URL是否能独立访问。

从截图看,错误发生在请求阶段,优先聚焦URL和网络权限。

回到顶部