如何实现下载断点续传?

如何实现下载断点续传

阅读 228
1 个回答

断点续传的实现需要依赖于服务器,客户端仅支持通过设置下载的开始位置和结束位置来控制是否断点续传。

可参考如下示例代码:

import { BusinessError, request } from '@kit.BasicServicesKit'; 
 
// 配置信息 
let config: request.agent.Config = { 
  action: request.agent.Action.DOWNLOAD, 
  url: 'https://xxx', 
  title: 'taskOnTest', 
  description: 'Sample code for event listening', 
  mode: request.agent.Mode.FOREGROUND, 
  overwrite: false, 
  method: "GET", 
  data: '', 
  saveas: "./", 
  network: request.agent.Network.WIFI, 
  metered: false, 
  roaming: true, 
  retry: true, 
  redirect: true, 
  index: 0, 
  begins: 0, 
  ends: -1, 
  gauge: false, 
  precise: false, 
  token: "it is a secret" 
}; 
// 创建任务 
request.agent.create(getContext(), config).then((task: request.agent.Task) => { 
  // 订阅任务进度事件 
  task.on('progress', (progress: request.agent.Progress) => { 
    console.info('xxx upload task progress:' + progress); 
  }); 
  // 订阅任务完成事件 
  task.on('completed', (progress: request.agent.Progress) => { 
    console.info('xxx upload task completed:' + progress); 
  }); 
  // 订阅任务失败事件 
  task.on('failed', (progress: request.agent.Progress) => { 
    console.info('xxx upload task failed:' + progress); 
  }); 
  // 订阅任务启动事件 
  task.start(() => { 
    console.info('xxx start task success'); 
  }) 
  console.info(`xxx Succeeded in creating a upload task. result: ${task.tid}`); 
}).catch((err: BusinessError) => { 
  console.error(`xxx Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进