1e41f4b71Sopenharmony_ci# @ohos.request (上传下载) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_cirequest部件主要给应用提供上传下载文件、后台传输代理的基础能力。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci## 导入模块 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```js 14e41f4b71Sopenharmony_ciimport { request } from '@kit.BasicServicesKit'; 15e41f4b71Sopenharmony_ci``` 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## 常量 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci### 网络类型 22e41f4b71Sopenharmony_ci下载支持自定义网络类型,可以在[DownloadConfig](#downloadconfig)中通过networkType配置成以下网络类型。 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci| 名称 | 参数类型 | 数值 | 说明 | 25e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 26e41f4b71Sopenharmony_ci| NETWORK_MOBILE | number | 0x00000001 | 使用蜂窝网络时允许下载的位标志。 | 27e41f4b71Sopenharmony_ci| NETWORK_WIFI | number | 0x00010000 | 使用WLAN时允许下载的位标志。 | 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci### 下载任务的错误码 30e41f4b71Sopenharmony_ci下载[on('fail')<sup>7+</sup>](#onfail7)事件callback的错误参数、[getTaskInfo<sup>9+</sup>](#gettaskinfo9)返回值的failedReason字段取值。 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci| 名称 | 参数类型 | 数值 | 说明 | 33e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 34e41f4b71Sopenharmony_ci| ERROR_CANNOT_RESUME<sup>7+</sup> | number | 0 | 网络原因导致恢复下载失败。 | 35e41f4b71Sopenharmony_ci| ERROR_DEVICE_NOT_FOUND<sup>7+</sup> | number | 1 | 找不到SD卡等存储设备。 | 36e41f4b71Sopenharmony_ci| ERROR_FILE_ALREADY_EXISTS<sup>7+</sup> | number | 2 | 要下载的文件已存在,下载会话不能覆盖现有文件。 | 37e41f4b71Sopenharmony_ci| ERROR_FILE_ERROR<sup>7+</sup> | number | 3 | 文件操作失败。 | 38e41f4b71Sopenharmony_ci| ERROR_HTTP_DATA_ERROR<sup>7+</sup> | number | 4 | HTTP传输失败。 | 39e41f4b71Sopenharmony_ci| ERROR_INSUFFICIENT_SPACE<sup>7+</sup> | number | 5 | 存储空间不足。 | 40e41f4b71Sopenharmony_ci| ERROR_TOO_MANY_REDIRECTS<sup>7+</sup> | number | 6 | 网络重定向过多导致的错误。 | 41e41f4b71Sopenharmony_ci| ERROR_UNHANDLED_HTTP_CODE<sup>7+</sup> | number | 7 | 无法识别的HTTP代码。 | 42e41f4b71Sopenharmony_ci| ERROR_UNKNOWN<sup>7+</sup> | number | 8 | 未知错误。(例如API version 12及以下版本,只支持串行的尝试连接域名相关ip,且不支持单个ip的连接时间控制,如果DNS返回的首个ip是阻塞的,可能握手超时造成ERROR_UNKNOWN错误。) | 43e41f4b71Sopenharmony_ci| ERROR_OFFLINE<sup>9+</sup> | number | 9 | 网络未连接。 | 44e41f4b71Sopenharmony_ci| ERROR_UNSUPPORTED_NETWORK_TYPE<sup>9+</sup> | number | 10 | 网络类型不匹配。 | 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci### 下载任务暂停原因 47e41f4b71Sopenharmony_ci下载相关[getTaskInfo<sup>9+</sup>](#gettaskinfo9)返回值的pausedReason字段取值。 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci| 名称 | 参数类型 | 数值 | 说明 | 50e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 51e41f4b71Sopenharmony_ci| PAUSED_QUEUED_FOR_WIFI<sup>7+</sup> | number | 0 | 下载被暂停并等待WLAN连接,因为文件大小超过了使用蜂窝网络的会话允许的最大值。 | 52e41f4b71Sopenharmony_ci| PAUSED_WAITING_FOR_NETWORK<sup>7+</sup> | number | 1 | 由于网络问题(例如网络断开)而暂停下载。 | 53e41f4b71Sopenharmony_ci| PAUSED_WAITING_TO_RETRY<sup>7+</sup> | number | 2 | 发生网络错误,将重试下载会话。 | 54e41f4b71Sopenharmony_ci| PAUSED_BY_USER<sup>9+</sup> | number | 3 | 用户暂停会话。 | 55e41f4b71Sopenharmony_ci| PAUSED_UNKNOWN<sup>7+</sup> | number | 4 | 未知原因导致暂停下载。 | 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci### 下载任务状态码 58e41f4b71Sopenharmony_ci下载相关[getTaskInfo<sup>9+</sup>](#gettaskinfo9)返回值的status字段取值。 59e41f4b71Sopenharmony_ci 60e41f4b71Sopenharmony_ci| 名称 | 参数类型 | 数值 | 说明 | 61e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 62e41f4b71Sopenharmony_ci| SESSION_SUCCESSFUL<sup>7+</sup> | number | 0 | 下载会话已完成。 | 63e41f4b71Sopenharmony_ci| SESSION_RUNNING<sup>7+</sup> | number | 1 | 下载会话正在进行中。 | 64e41f4b71Sopenharmony_ci| SESSION_PENDING<sup>7+</sup> | number | 2 | 正在调度下载会话。 | 65e41f4b71Sopenharmony_ci| SESSION_PAUSED<sup>7+</sup> | number | 3 | 下载会话已暂停。 | 66e41f4b71Sopenharmony_ci| SESSION_FAILED<sup>7+</sup> | number | 4 | 下载会话已失败,将不会重试。 | 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci## request.uploadFile<sup>9+</sup> 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ciuploadFile(context: BaseContext, config: UploadConfig): Promise<UploadTask> 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci上传,异步方法,使用promise形式返回结果。通过[on('complete'|'fail')<sup>9+</sup>](#oncomplete--fail9)可获取任务上传时的错误信息。 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci**参数:** 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 82e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 83e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 84e41f4b71Sopenharmony_ci | config | [UploadConfig](#uploadconfig6) | 是 | 上传的配置信息。 | 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci**返回值:** 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci | 类型 | 说明 | 90e41f4b71Sopenharmony_ci | -------- | -------- | 91e41f4b71Sopenharmony_ci | Promise<[UploadTask](#uploadtask)> | 使用Promise方式,异步返回上传任务UploadTask的Promise对象。 | 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci**错误码:** 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 98e41f4b71Sopenharmony_ci | -------- | -------- | 99e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 100e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 101e41f4b71Sopenharmony_ci | 13400002 | bad file path. | 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci**示例:** 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci ```ts 106e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci let uploadTask: request.UploadTask; 109e41f4b71Sopenharmony_ci let uploadConfig: request.UploadConfig = { 110e41f4b71Sopenharmony_ci url: 'http://www.example.com', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 111e41f4b71Sopenharmony_ci header: { 'Accept': '*/*' }, 112e41f4b71Sopenharmony_ci method: "POST", 113e41f4b71Sopenharmony_ci files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }], 114e41f4b71Sopenharmony_ci data: [{ name: "name123", value: "123" }], 115e41f4b71Sopenharmony_ci }; 116e41f4b71Sopenharmony_ci try { 117e41f4b71Sopenharmony_ci request.uploadFile(getContext(), uploadConfig).then((data: request.UploadTask) => { 118e41f4b71Sopenharmony_ci uploadTask = data; 119e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 120e41f4b71Sopenharmony_ci console.error(`Failed to request the upload. Code: ${err.code}, message: ${err.message}`); 121e41f4b71Sopenharmony_ci }); 122e41f4b71Sopenharmony_ci } catch (err) { 123e41f4b71Sopenharmony_ci console.error(`Failed to request the upload. err: ${JSON.stringify(err)}`); 124e41f4b71Sopenharmony_ci } 125e41f4b71Sopenharmony_ci ``` 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci> **说明:** 128e41f4b71Sopenharmony_ci> 129e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci## request.uploadFile<sup>9+</sup> 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ciuploadFile(context: BaseContext, config: UploadConfig, callback: AsyncCallback<UploadTask>): void 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci上传,异步方法,使用callback形式返回结果。通过[on('complete'|'fail')<sup>9+</sup>](#oncomplete--fail9)可获取任务上传时的错误信息。 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci**参数:** 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 145e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 146e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 147e41f4b71Sopenharmony_ci | config | [UploadConfig](#uploadconfig6) | 是 | 上传的配置信息。 | 148e41f4b71Sopenharmony_ci | callback | AsyncCallback<[UploadTask](#uploadtask)> | 是 | 回调函数,异步返回UploadTask对象。当上传成功,err为undefined,data为获取到的UploadTask对象;否则为错误对象。 | 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci**错误码:** 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 155e41f4b71Sopenharmony_ci | -------- | -------- | 156e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 157e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 158e41f4b71Sopenharmony_ci | 13400002 | bad file path. | 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci**示例:** 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci ```ts 163e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci let uploadTask: request.UploadTask; 166e41f4b71Sopenharmony_ci let uploadConfig: request.UploadConfig = { 167e41f4b71Sopenharmony_ci url: 'http://www.example.com', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 168e41f4b71Sopenharmony_ci header: { 'Accept': '*/*' }, 169e41f4b71Sopenharmony_ci method: "POST", 170e41f4b71Sopenharmony_ci files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }], 171e41f4b71Sopenharmony_ci data: [{ name: "name123", value: "123" }], 172e41f4b71Sopenharmony_ci }; 173e41f4b71Sopenharmony_ci try { 174e41f4b71Sopenharmony_ci request.uploadFile(getContext(), uploadConfig, (err: BusinessError, data: request.UploadTask) => { 175e41f4b71Sopenharmony_ci if (err) { 176e41f4b71Sopenharmony_ci console.error(`Failed to request the upload. Code: ${err.code}, message: ${err.message}`); 177e41f4b71Sopenharmony_ci return; 178e41f4b71Sopenharmony_ci } 179e41f4b71Sopenharmony_ci uploadTask = data; 180e41f4b71Sopenharmony_ci }); 181e41f4b71Sopenharmony_ci } catch (err) { 182e41f4b71Sopenharmony_ci console.error(`Failed to request the upload. err: ${JSON.stringify(err)}`); 183e41f4b71Sopenharmony_ci } 184e41f4b71Sopenharmony_ci ``` 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci> **说明:** 187e41f4b71Sopenharmony_ci> 188e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci## request.upload<sup>(deprecated)</sup> 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ciupload(config: UploadConfig): Promise<UploadTask> 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ci上传,异步方法,使用promise形式返回结果。 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在FA模型下使用 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci> **说明:** 199e41f4b71Sopenharmony_ci> 200e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[request.uploadFile<sup>9+</sup>](#requestuploadfile9)替代。 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci**参数:** 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 209e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 210e41f4b71Sopenharmony_ci | config | [UploadConfig](#uploadconfig6) | 是 | 上传的配置信息。 | 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci**返回值:** 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci | 类型 | 说明 | 215e41f4b71Sopenharmony_ci | -------- | -------- | 216e41f4b71Sopenharmony_ci | Promise<[UploadTask](#uploadtask)> | 使用Promise方式,异步返回上传任务UploadTask的Promise对象。 | 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci**错误码:** 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 223e41f4b71Sopenharmony_ci | -------- | -------- | 224e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci**示例:** 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci ```js 229e41f4b71Sopenharmony_ci let uploadTask; 230e41f4b71Sopenharmony_ci let uploadConfig = { 231e41f4b71Sopenharmony_ci url: 'http://www.example.com', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 232e41f4b71Sopenharmony_ci header: { 'Accept': '*/*' }, 233e41f4b71Sopenharmony_ci method: "POST", 234e41f4b71Sopenharmony_ci files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }], 235e41f4b71Sopenharmony_ci data: [{ name: "name123", value: "123" }], 236e41f4b71Sopenharmony_ci }; 237e41f4b71Sopenharmony_ci request.upload(uploadConfig).then((data) => { 238e41f4b71Sopenharmony_ci uploadTask = data; 239e41f4b71Sopenharmony_ci }).catch((err) => { 240e41f4b71Sopenharmony_ci console.error(`Failed to request the upload. Code: ${err.code}, message: ${err.message}`); 241e41f4b71Sopenharmony_ci }) 242e41f4b71Sopenharmony_ci ``` 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci## request.upload<sup>(deprecated)</sup> 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ciupload(config: UploadConfig, callback: AsyncCallback<UploadTask>): void 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_ci上传,异步方法,使用callback形式返回结果。 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在FA模型下使用 252e41f4b71Sopenharmony_ci 253e41f4b71Sopenharmony_ci> **说明:** 254e41f4b71Sopenharmony_ci> 255e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[request.uploadFile<sup>9+</sup>](#requestuploadfile9-1)替代。 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci**参数:** 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 264e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 265e41f4b71Sopenharmony_ci | config | [UploadConfig](#uploadconfig6) | 是 | 上传的配置信息。 | 266e41f4b71Sopenharmony_ci | callback | AsyncCallback<[UploadTask](#uploadtask)> | 是 | 回调函数,异步返回UploadTask对象。当上传成功,err为undefined,data为获取到的UploadTask对象;否则为错误对象。 | 267e41f4b71Sopenharmony_ci 268e41f4b71Sopenharmony_ci**错误码:** 269e41f4b71Sopenharmony_ci 270e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 273e41f4b71Sopenharmony_ci | -------- | -------- | 274e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 275e41f4b71Sopenharmony_ci 276e41f4b71Sopenharmony_ci**示例:** 277e41f4b71Sopenharmony_ci 278e41f4b71Sopenharmony_ci ```js 279e41f4b71Sopenharmony_ci let uploadTask; 280e41f4b71Sopenharmony_ci let uploadConfig = { 281e41f4b71Sopenharmony_ci url: 'http://www.example.com', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 282e41f4b71Sopenharmony_ci header: { 'Accept': '*/*' }, 283e41f4b71Sopenharmony_ci method: "POST", 284e41f4b71Sopenharmony_ci files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }], 285e41f4b71Sopenharmony_ci data: [{ name: "name123", value: "123" }], 286e41f4b71Sopenharmony_ci }; 287e41f4b71Sopenharmony_ci request.upload(uploadConfig, (err, data) => { 288e41f4b71Sopenharmony_ci if (err) { 289e41f4b71Sopenharmony_ci console.error(`Failed to request the upload. Code: ${err.code}, message: ${err.message}`); 290e41f4b71Sopenharmony_ci return; 291e41f4b71Sopenharmony_ci } 292e41f4b71Sopenharmony_ci uploadTask = data; 293e41f4b71Sopenharmony_ci }); 294e41f4b71Sopenharmony_ci ``` 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci## UploadTask 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci上传任务,使用下列方法前,需要先获取UploadTask对象,promise形式通过[request.uploadFile<sup>9+</sup>](#requestuploadfile9)获取,callback形式通过[request.uploadFile<sup>9+</sup>](#requestuploadfile9-1)获取。 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_ci### on('progress') 303e41f4b71Sopenharmony_ci 304e41f4b71Sopenharmony_cion(type: 'progress', callback:(uploadedSize: number, totalSize: number) => void): void 305e41f4b71Sopenharmony_ci 306e41f4b71Sopenharmony_ci订阅上传任务进度事件,异步方法,使用callback形式返回结果。 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci> **说明:** 309e41f4b71Sopenharmony_ci> 310e41f4b71Sopenharmony_ci> 当应用处于后台时,为满足功耗性能要求,不支持调用此接口进行回调。 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 313e41f4b71Sopenharmony_ci 314e41f4b71Sopenharmony_ci**参数:** 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 317e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 318e41f4b71Sopenharmony_ci | type | string | 是 | 订阅的事件类型,取值为'progress'(上传任务的进度信息)。 | 319e41f4b71Sopenharmony_ci | callback | function | 是 | 上传任务进度的回调函数,返回已上传文件大小和上传文件总大小。 | 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci 回调函数的参数 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 324e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 325e41f4b71Sopenharmony_ci| uploadedSize | number | 是 | 当前已上传文件大小,单位为字节。 | 326e41f4b71Sopenharmony_ci| totalSize | number | 是 | 上传文件的总大小,单位为字节。 | 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ci**错误码:** 329e41f4b71Sopenharmony_ci 330e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 331e41f4b71Sopenharmony_ci 332e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 333e41f4b71Sopenharmony_ci | -------- | -------- | 334e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 335e41f4b71Sopenharmony_ci 336e41f4b71Sopenharmony_ci**示例:** 337e41f4b71Sopenharmony_ci 338e41f4b71Sopenharmony_ci<!--code_no_check--> 339e41f4b71Sopenharmony_ci ```ts 340e41f4b71Sopenharmony_ci let upProgressCallback = (uploadedSize: number, totalSize: number) => { 341e41f4b71Sopenharmony_ci console.info("upload totalSize:" + totalSize + " uploadedSize:" + uploadedSize); 342e41f4b71Sopenharmony_ci }; 343e41f4b71Sopenharmony_ci uploadTask.on('progress', upProgressCallback); 344e41f4b71Sopenharmony_ci ``` 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci### on('headerReceive')<sup>7+</sup> 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_cion(type: 'headerReceive', callback: (header: object) => void): void 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci订阅上传任务HTTP响应事件,异步方法,使用callback形式返回结果。 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.MiscServices.Upload 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci**参数:** 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 358e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 359e41f4b71Sopenharmony_ci | type | string | 是 | 订阅的事件类型,取值为'headerReceive'(接收响应)。 | 360e41f4b71Sopenharmony_ci | callback | function | 是 | HTTP Response事件的回调函数,返回响应请求内容。 | 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci 回调函数的参数: 363e41f4b71Sopenharmony_ci 364e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 365e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 366e41f4b71Sopenharmony_ci| header | object | 是 | HTTP Response。 | 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci**错误码:** 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 373e41f4b71Sopenharmony_ci | -------- | -------- | 374e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci**示例:** 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci<!--code_no_check--> 379e41f4b71Sopenharmony_ci ```ts 380e41f4b71Sopenharmony_ci let headerCallback = (headers: object) => { 381e41f4b71Sopenharmony_ci console.info("upOnHeader headers:" + JSON.stringify(headers)); 382e41f4b71Sopenharmony_ci }; 383e41f4b71Sopenharmony_ci uploadTask.on('headerReceive', headerCallback); 384e41f4b71Sopenharmony_ci ``` 385e41f4b71Sopenharmony_ci 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci### on('complete' | 'fail')<sup>9+</sup> 388e41f4b71Sopenharmony_ci 389e41f4b71Sopenharmony_ci on(type:'complete' | 'fail', callback: Callback<Array<TaskState>>): void; 390e41f4b71Sopenharmony_ci 391e41f4b71Sopenharmony_ci订阅上传任务完成或失败事件,异步方法,使用callback形式返回结果。 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 394e41f4b71Sopenharmony_ci 395e41f4b71Sopenharmony_ci**参数:** 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 398e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 399e41f4b71Sopenharmony_ci | type | string | 是 | 订阅上传任务的回调类型,支持的事件包括:`'complete'`\|`'fail'`。<br/>\-`'complete'`:表示上传任务完成。 <br/>\-`'fail'`:表示上传任务失败。 400e41f4b71Sopenharmony_ci | callback | Callback<Array<[TaskState](#taskstate9)>> | 是 | 上传任务完成或失败的回调函数。返回上传任务的任务状态信息。 | 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ci 403e41f4b71Sopenharmony_ci**错误码:** 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 406e41f4b71Sopenharmony_ci 407e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 408e41f4b71Sopenharmony_ci | -------- | -------- | 409e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 410e41f4b71Sopenharmony_ci 411e41f4b71Sopenharmony_ci**示例:** 412e41f4b71Sopenharmony_ci 413e41f4b71Sopenharmony_ci<!--code_no_check--> 414e41f4b71Sopenharmony_ci ```ts 415e41f4b71Sopenharmony_ci let upCompleteCallback = (taskStates: Array<request.TaskState>) => { 416e41f4b71Sopenharmony_ci for (let i = 0; i < taskStates.length; i++) { 417e41f4b71Sopenharmony_ci console.info("upOnComplete taskState:" + JSON.stringify(taskStates[i])); 418e41f4b71Sopenharmony_ci } 419e41f4b71Sopenharmony_ci }; 420e41f4b71Sopenharmony_ci uploadTask.on('complete', upCompleteCallback); 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_ci let upFailCallback = (taskStates: Array<request.TaskState>) => { 423e41f4b71Sopenharmony_ci for (let i = 0; i < taskStates.length; i++) { 424e41f4b71Sopenharmony_ci console.info("upOnFail taskState:" + JSON.stringify(taskStates[i])); 425e41f4b71Sopenharmony_ci } 426e41f4b71Sopenharmony_ci }; 427e41f4b71Sopenharmony_ci uploadTask.on('fail', upFailCallback); 428e41f4b71Sopenharmony_ci ``` 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci### off('progress') 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_cioff(type: 'progress', callback?: (uploadedSize: number, totalSize: number) => void): void 434e41f4b71Sopenharmony_ci 435e41f4b71Sopenharmony_ci取消订阅上传任务进度事件。 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ci**参数:** 440e41f4b71Sopenharmony_ci 441e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 442e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 443e41f4b71Sopenharmony_ci | type | string | 是 | 取消订阅的事件类型,取值为'progress'(上传的进度信息)。 | 444e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 445e41f4b71Sopenharmony_ci 446e41f4b71Sopenharmony_ci回调函数的参数 447e41f4b71Sopenharmony_ci 448e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 449e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 450e41f4b71Sopenharmony_ci| uploadedSize | number | 是 | 当前已上传文件大小,单位为字节。 | 451e41f4b71Sopenharmony_ci| totalSize | number | 是 | 上传文件的总大小,单位为字节。 | 452e41f4b71Sopenharmony_ci**错误码:** 453e41f4b71Sopenharmony_ci 454e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 455e41f4b71Sopenharmony_ci 456e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 457e41f4b71Sopenharmony_ci | -------- | -------- | 458e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci**示例:** 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci<!--code_no_check--> 463e41f4b71Sopenharmony_ci ```ts 464e41f4b71Sopenharmony_ci let upProgressCallback1 = (uploadedSize: number, totalSize: number) => { 465e41f4b71Sopenharmony_ci console.info('Upload delete progress notification.' + 'totalSize:' + totalSize + 'uploadedSize:' + uploadedSize); 466e41f4b71Sopenharmony_ci }; 467e41f4b71Sopenharmony_ci let upProgressCallback2 = (uploadedSize: number, totalSize: number) => { 468e41f4b71Sopenharmony_ci console.info('Upload delete progress notification.' + 'totalSize:' + totalSize + 'uploadedSize:' + uploadedSize); 469e41f4b71Sopenharmony_ci }; 470e41f4b71Sopenharmony_ci uploadTask.on('progress', upProgressCallback1); 471e41f4b71Sopenharmony_ci uploadTask.on('progress', upProgressCallback2); 472e41f4b71Sopenharmony_ci //表示取消upProgressCallback1的订阅 473e41f4b71Sopenharmony_ci uploadTask.off('progress', upProgressCallback1); 474e41f4b71Sopenharmony_ci //表示取消订阅上传任务进度事件的所有回调 475e41f4b71Sopenharmony_ci uploadTask.off('progress'); 476e41f4b71Sopenharmony_ci ``` 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci 479e41f4b71Sopenharmony_ci### off('headerReceive')<sup>7+</sup> 480e41f4b71Sopenharmony_ci 481e41f4b71Sopenharmony_cioff(type: 'headerReceive', callback?: (header: object) => void): void 482e41f4b71Sopenharmony_ci 483e41f4b71Sopenharmony_ci取消订阅上传任务HTTP响应事件。 484e41f4b71Sopenharmony_ci 485e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci**参数:** 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 490e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 491e41f4b71Sopenharmony_ci | type | string | 是 | 取消订阅的事件类型,取值为'headerReceive'(接收响应)。 | 492e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 493e41f4b71Sopenharmony_ci 494e41f4b71Sopenharmony_ci**错误码:** 495e41f4b71Sopenharmony_ci 496e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 497e41f4b71Sopenharmony_ci 498e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 499e41f4b71Sopenharmony_ci | -------- | -------- | 500e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 501e41f4b71Sopenharmony_ci 502e41f4b71Sopenharmony_ci**示例:** 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_ci<!--code_no_check--> 505e41f4b71Sopenharmony_ci ```ts 506e41f4b71Sopenharmony_ci let headerCallback1 = (header: object) => { 507e41f4b71Sopenharmony_ci console.info(`Upload delete headerReceive notification. header: ${JSON.stringify(header)}`); 508e41f4b71Sopenharmony_ci }; 509e41f4b71Sopenharmony_ci let headerCallback2 = (header: object) => { 510e41f4b71Sopenharmony_ci console.info(`Upload delete headerReceive notification. header: ${JSON.stringify(header)}`); 511e41f4b71Sopenharmony_ci }; 512e41f4b71Sopenharmony_ci uploadTask.on('headerReceive', headerCallback1); 513e41f4b71Sopenharmony_ci uploadTask.on('headerReceive', headerCallback2); 514e41f4b71Sopenharmony_ci //表示取消headerCallback1的订阅 515e41f4b71Sopenharmony_ci uploadTask.off('headerReceive', headerCallback1); 516e41f4b71Sopenharmony_ci //表示取消订阅上传任务HTTP标头事件的所有回调 517e41f4b71Sopenharmony_ci uploadTask.off('headerReceive'); 518e41f4b71Sopenharmony_ci ``` 519e41f4b71Sopenharmony_ci 520e41f4b71Sopenharmony_ci### off('complete' | 'fail')<sup>9+</sup> 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ci off(type:'complete' | 'fail', callback?: Callback<Array<TaskState>>): void; 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci取消订阅上传任务完成或失败事件。 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci**参数:** 529e41f4b71Sopenharmony_ci 530e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 531e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 532e41f4b71Sopenharmony_ci | type | string | 是 | 订阅的事件类型,取值为'complete',表示上传任务完成;取值为'fail',表示上传任务失败。| 533e41f4b71Sopenharmony_ci | callback | Callback<Array<[TaskState](#taskstate9)>> | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 534e41f4b71Sopenharmony_ci 535e41f4b71Sopenharmony_ci**错误码:** 536e41f4b71Sopenharmony_ci 537e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 538e41f4b71Sopenharmony_ci 539e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 540e41f4b71Sopenharmony_ci | -------- | -------- | 541e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 542e41f4b71Sopenharmony_ci 543e41f4b71Sopenharmony_ci**示例:** 544e41f4b71Sopenharmony_ci 545e41f4b71Sopenharmony_ci<!--code_no_check--> 546e41f4b71Sopenharmony_ci ```ts 547e41f4b71Sopenharmony_ci let upCompleteCallback1 = (taskStates: Array<request.TaskState>) => { 548e41f4b71Sopenharmony_ci console.info('Upload delete complete notification.'); 549e41f4b71Sopenharmony_ci for (let i = 0; i < taskStates.length; i++) { 550e41f4b71Sopenharmony_ci console.info('taskState:' + JSON.stringify(taskStates[i])); 551e41f4b71Sopenharmony_ci } 552e41f4b71Sopenharmony_ci }; 553e41f4b71Sopenharmony_ci let upCompleteCallback2 = (taskStates: Array<request.TaskState>) => { 554e41f4b71Sopenharmony_ci console.info('Upload delete complete notification.'); 555e41f4b71Sopenharmony_ci for (let i = 0; i < taskStates.length; i++) { 556e41f4b71Sopenharmony_ci console.info('taskState:' + JSON.stringify(taskStates[i])); 557e41f4b71Sopenharmony_ci } 558e41f4b71Sopenharmony_ci }; 559e41f4b71Sopenharmony_ci uploadTask.on('complete', upCompleteCallback1); 560e41f4b71Sopenharmony_ci uploadTask.on('complete', upCompleteCallback2); 561e41f4b71Sopenharmony_ci //表示取消headerCallback1的订阅 562e41f4b71Sopenharmony_ci uploadTask.off('complete', upCompleteCallback1); 563e41f4b71Sopenharmony_ci //表示取消订阅上传任务完成的所有回调 564e41f4b71Sopenharmony_ci uploadTask.off('complete'); 565e41f4b71Sopenharmony_ci 566e41f4b71Sopenharmony_ci let upFailCallback1 = (taskStates: Array<request.TaskState>) => { 567e41f4b71Sopenharmony_ci console.info('Upload delete fail notification.'); 568e41f4b71Sopenharmony_ci for (let i = 0; i < taskStates.length; i++) { 569e41f4b71Sopenharmony_ci console.info('taskState:' + JSON.stringify(taskStates[i])); 570e41f4b71Sopenharmony_ci } 571e41f4b71Sopenharmony_ci }; 572e41f4b71Sopenharmony_ci let upFailCallback2 = (taskStates: Array<request.TaskState>) => { 573e41f4b71Sopenharmony_ci console.info('Upload delete fail notification.'); 574e41f4b71Sopenharmony_ci for (let i = 0; i < taskStates.length; i++) { 575e41f4b71Sopenharmony_ci console.info('taskState:' + JSON.stringify(taskStates[i])); 576e41f4b71Sopenharmony_ci } 577e41f4b71Sopenharmony_ci }; 578e41f4b71Sopenharmony_ci uploadTask.on('fail', upFailCallback1); 579e41f4b71Sopenharmony_ci uploadTask.on('fail', upFailCallback2); 580e41f4b71Sopenharmony_ci //表示取消headerCallback1的订阅 581e41f4b71Sopenharmony_ci uploadTask.off('fail', upFailCallback1); 582e41f4b71Sopenharmony_ci //表示取消订阅上传任务失败的所有回调 583e41f4b71Sopenharmony_ci uploadTask.off('fail'); 584e41f4b71Sopenharmony_ci ``` 585e41f4b71Sopenharmony_ci 586e41f4b71Sopenharmony_ci### delete<sup>9+</sup> 587e41f4b71Sopenharmony_cidelete(): Promise<boolean> 588e41f4b71Sopenharmony_ci 589e41f4b71Sopenharmony_ci移除上传的任务,异步方法,使用promise形式返回结果。 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 592e41f4b71Sopenharmony_ci 593e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 594e41f4b71Sopenharmony_ci 595e41f4b71Sopenharmony_ci**返回值:** 596e41f4b71Sopenharmony_ci 597e41f4b71Sopenharmony_ci | 类型 | 说明 | 598e41f4b71Sopenharmony_ci | -------- | -------- | 599e41f4b71Sopenharmony_ci | Promise<boolean> | 使用Promise方式异步回调,返回true表示移除上传任务成功;返回false表示移除上传任务失败。 | 600e41f4b71Sopenharmony_ci 601e41f4b71Sopenharmony_ci**错误码:** 602e41f4b71Sopenharmony_ci 603e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 604e41f4b71Sopenharmony_ci 605e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 606e41f4b71Sopenharmony_ci | -------- | -------- | 607e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 608e41f4b71Sopenharmony_ci 609e41f4b71Sopenharmony_ci**示例:** 610e41f4b71Sopenharmony_ci 611e41f4b71Sopenharmony_ci<!--code_no_check--> 612e41f4b71Sopenharmony_ci ```ts 613e41f4b71Sopenharmony_ci uploadTask.delete().then((result: boolean) => { 614e41f4b71Sopenharmony_ci console.info('Succeeded in deleting the upload task.'); 615e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 616e41f4b71Sopenharmony_ci console.error(`Failed to delete the upload task. Code: ${err.code}, message: ${err.message}`); 617e41f4b71Sopenharmony_ci }); 618e41f4b71Sopenharmony_ci ``` 619e41f4b71Sopenharmony_ci 620e41f4b71Sopenharmony_ci> **说明:** 621e41f4b71Sopenharmony_ci> 622e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 623e41f4b71Sopenharmony_ci 624e41f4b71Sopenharmony_ci 625e41f4b71Sopenharmony_ci### delete<sup>9+</sup> 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_cidelete(callback: AsyncCallback<boolean>): void 628e41f4b71Sopenharmony_ci 629e41f4b71Sopenharmony_ci移除上传的任务,异步方法,使用callback形式返回结果。 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 632e41f4b71Sopenharmony_ci 633e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 634e41f4b71Sopenharmony_ci 635e41f4b71Sopenharmony_ci**参数:** 636e41f4b71Sopenharmony_ci 637e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 638e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 639e41f4b71Sopenharmony_ci | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示异步返回移除任务成功;返回false表示异步返回移除任务失败。 | 640e41f4b71Sopenharmony_ci 641e41f4b71Sopenharmony_ci**错误码:** 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 644e41f4b71Sopenharmony_ci 645e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 646e41f4b71Sopenharmony_ci | -------- | -------- | 647e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 648e41f4b71Sopenharmony_ci 649e41f4b71Sopenharmony_ci**示例:** 650e41f4b71Sopenharmony_ci 651e41f4b71Sopenharmony_ci<!--code_no_check--> 652e41f4b71Sopenharmony_ci ```ts 653e41f4b71Sopenharmony_ci uploadTask.delete((err: BusinessError, result: boolean) => { 654e41f4b71Sopenharmony_ci if (err) { 655e41f4b71Sopenharmony_ci console.error(`Failed to delete the upload task. Code: ${err.code}, message: ${err.message}`); 656e41f4b71Sopenharmony_ci return; 657e41f4b71Sopenharmony_ci } 658e41f4b71Sopenharmony_ci console.info('Succeeded in deleting the upload task.'); 659e41f4b71Sopenharmony_ci }); 660e41f4b71Sopenharmony_ci ``` 661e41f4b71Sopenharmony_ci 662e41f4b71Sopenharmony_ci> **说明:** 663e41f4b71Sopenharmony_ci> 664e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 665e41f4b71Sopenharmony_ci 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_ci### remove<sup>(deprecated)</sup> 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_ciremove(): Promise<boolean> 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci移除上传的任务,异步方法,使用promise形式返回结果。 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci> **说明:** 674e41f4b71Sopenharmony_ci> 675e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9)替代。 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 678e41f4b71Sopenharmony_ci 679e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 680e41f4b71Sopenharmony_ci 681e41f4b71Sopenharmony_ci**返回值:** 682e41f4b71Sopenharmony_ci 683e41f4b71Sopenharmony_ci | 类型 | 说明 | 684e41f4b71Sopenharmony_ci | -------- | -------- | 685e41f4b71Sopenharmony_ci | Promise<boolean> | 使用Promise方式异步回调,返回true表示移除上传任务成功;返回false表示移除上传任务失败。 | 686e41f4b71Sopenharmony_ci 687e41f4b71Sopenharmony_ci**错误码:** 688e41f4b71Sopenharmony_ci 689e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 690e41f4b71Sopenharmony_ci 691e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 692e41f4b71Sopenharmony_ci | -------- | -------- | 693e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 694e41f4b71Sopenharmony_ci 695e41f4b71Sopenharmony_ci**示例:** 696e41f4b71Sopenharmony_ci 697e41f4b71Sopenharmony_ci ```js 698e41f4b71Sopenharmony_ci uploadTask.remove().then((result) => { 699e41f4b71Sopenharmony_ci console.info('Succeeded in removing the upload task.'); 700e41f4b71Sopenharmony_ci }).catch((err) => { 701e41f4b71Sopenharmony_ci console.error(`Failed to remove the upload task. Code: ${err.code}, message: ${err.message}`); 702e41f4b71Sopenharmony_ci }); 703e41f4b71Sopenharmony_ci ``` 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_ci 706e41f4b71Sopenharmony_ci### remove<sup>(deprecated)</sup> 707e41f4b71Sopenharmony_ci 708e41f4b71Sopenharmony_ciremove(callback: AsyncCallback<boolean>): void 709e41f4b71Sopenharmony_ci 710e41f4b71Sopenharmony_ci移除上传的任务,异步方法,使用callback形式返回结果。 711e41f4b71Sopenharmony_ci 712e41f4b71Sopenharmony_ci> **说明:** 713e41f4b71Sopenharmony_ci> 714e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9-1)替代。 715e41f4b71Sopenharmony_ci 716e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 717e41f4b71Sopenharmony_ci 718e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Upload 719e41f4b71Sopenharmony_ci 720e41f4b71Sopenharmony_ci**参数:** 721e41f4b71Sopenharmony_ci 722e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 723e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 724e41f4b71Sopenharmony_ci | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示异步返回移除任务成功;返回false表示异步返回移除任务失败。 | 725e41f4b71Sopenharmony_ci 726e41f4b71Sopenharmony_ci**错误码:** 727e41f4b71Sopenharmony_ci 728e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 729e41f4b71Sopenharmony_ci 730e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 731e41f4b71Sopenharmony_ci | -------- | -------- | 732e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 733e41f4b71Sopenharmony_ci 734e41f4b71Sopenharmony_ci**示例:** 735e41f4b71Sopenharmony_ci 736e41f4b71Sopenharmony_ci ```js 737e41f4b71Sopenharmony_ci uploadTask.remove((err, result) => { 738e41f4b71Sopenharmony_ci if (err) { 739e41f4b71Sopenharmony_ci console.error(`Failed to remove the upload task. Code: ${err.code}, message: ${err.message}`); 740e41f4b71Sopenharmony_ci return; 741e41f4b71Sopenharmony_ci } 742e41f4b71Sopenharmony_ci if (result) { 743e41f4b71Sopenharmony_ci console.info('Succeeded in removing the upload task.'); 744e41f4b71Sopenharmony_ci } else { 745e41f4b71Sopenharmony_ci console.error(`Failed to remove the upload task. Code: ${err.code}, message: ${err.message}`); 746e41f4b71Sopenharmony_ci } 747e41f4b71Sopenharmony_ci }); 748e41f4b71Sopenharmony_ci ``` 749e41f4b71Sopenharmony_ci 750e41f4b71Sopenharmony_ci## UploadConfig<sup>6+</sup> 751e41f4b71Sopenharmony_ci上传任务的配置信息。 752e41f4b71Sopenharmony_ci 753e41f4b71Sopenharmony_ci**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 754e41f4b71Sopenharmony_ci 755e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 756e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 757e41f4b71Sopenharmony_ci| url | string | 是 | 资源地址,其最大长度为2048个字符。 | 758e41f4b71Sopenharmony_ci| header | Object | 是 | 添加要包含在上传请求中的HTTP或HTTPS标志头。 | 759e41f4b71Sopenharmony_ci| method | string | 是 | HTTP请求方法:POST、PUT,缺省为POST。使用PUT修改资源,使用POST新增资源。 | 760e41f4b71Sopenharmony_ci| index<sup>11+</sup> | number | 否 | 任务的路径索引,默认值为0。 | 761e41f4b71Sopenharmony_ci| begins<sup>11+</sup> | number | 否 | 在上传开始时读取的文件起点。默认值为0,取值为闭区间。| 762e41f4b71Sopenharmony_ci| ends<sup>11+</sup> | number | 否 | 在上传结束时读取的文件终点。默认值为-1,取值为闭区间。 | 763e41f4b71Sopenharmony_ci| files | Array<[File](#file)> | 是 | 要上传的文件列表。文件以 HTTP 的 multipart/form-data 格式提交。 | 764e41f4b71Sopenharmony_ci| data | Array<[RequestData](#requestdata)> | 是 | 请求的表单数据。 | 765e41f4b71Sopenharmony_ci 766e41f4b71Sopenharmony_ci## TaskState<sup>9+</sup> 767e41f4b71Sopenharmony_ci上传任务的任务信息,是[on('complete' | 'fail')<sup>9+</sup>](#oncomplete--fail9)和[off('complete' | 'fail')<sup>9+</sup>](#offcomplete--fail9)接口的回调参数。 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。 770e41f4b71Sopenharmony_ci 771e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 772e41f4b71Sopenharmony_ci| -------- | -------- | -------- |-------------------------------------------------------------------------------------------------------------------------------------------| 773e41f4b71Sopenharmony_ci| path | string | 是 | 文件路径 | 774e41f4b71Sopenharmony_ci| responseCode | number | 是 | 上传任务返回值,0表示任务成功,其它返回码为失败,具体请查看message上传任务结果描述信息。此处推荐使用[request.agent.create<sup>10+</sup>](#requestagentcreate10-1)创建上传任务,并获取标准错误码处理异常分支。 | 775e41f4b71Sopenharmony_ci| message | string | 是 | 上传任务结果描述信息 | 776e41f4b71Sopenharmony_ci 777e41f4b71Sopenharmony_ci其中,responseCode包含的返回码值如下: 778e41f4b71Sopenharmony_ci 779e41f4b71Sopenharmony_ci| 返回码 | 具体信息 | 780e41f4b71Sopenharmony_ci|-----|------------------------------------| 781e41f4b71Sopenharmony_ci| 0 | 上传成功 | 782e41f4b71Sopenharmony_ci| 5 | 任务被主动暂停或停止 | 783e41f4b71Sopenharmony_ci| 6 | 任务所属应用被切换到后台或终止,导致前台任务被停止,请检查应用状态 | 784e41f4b71Sopenharmony_ci| 7 | 无网络,请检查设备是否处于联网状态 | 785e41f4b71Sopenharmony_ci| 8 | 网络类型不匹配,请检查当前网络类型和任务所需网络类型是否匹配 | 786e41f4b71Sopenharmony_ci| 10 | 创建HTTP请求失败,请检查参数是否正确或重试任务 | 787e41f4b71Sopenharmony_ci| 12 | 超时,请检查参数是否正确、检查网络,又或是重试任务 | 788e41f4b71Sopenharmony_ci| 13 | 连接失败,请检查参数是否正确、检查网络,又或是重试任务 | 789e41f4b71Sopenharmony_ci| 14 | 请求失败,请检查参数是否正确、检查网络,又或是重试任务 | 790e41f4b71Sopenharmony_ci| 15 | 上传失败,请检查参数是否正确、检查网络,又或是重试任务 | 791e41f4b71Sopenharmony_ci| 16 | 重定向失败,请检查参数是否正确、检查网络,又或是重试任务 | 792e41f4b71Sopenharmony_ci| 17 | 协议错误,服务器返回 4XX 或 5XX 状态码,请检查参数是否正确 | 793e41f4b71Sopenharmony_ci| 20 | 其他错误,请检查参数是否正确、检查网络,又或是重试任务 | 794e41f4b71Sopenharmony_ci 795e41f4b71Sopenharmony_ci## File 796e41f4b71Sopenharmony_ci[UploadConfig<sup>6+<sup>](#uploadconfig6)中的文件列表。 797e41f4b71Sopenharmony_ci 798e41f4b71Sopenharmony_ci**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 799e41f4b71Sopenharmony_ci 800e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 801e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 802e41f4b71Sopenharmony_ci| filename | string | 是 | multipart提交时,请求头中的文件名。 | 803e41f4b71Sopenharmony_ci| name | string | 是 | multipart提交时,表单项目的名称,缺省为file。 | 804e41f4b71Sopenharmony_ci| uri | string | 是 | 文件的本地存储路径。<br/>仅支持"internal"协议类型,仅支持"internal://cache/",即调用方(即传入的context)对应的缓存路径context.cacheDir。<br/>示例:internal://cache/path/to/file.txt | 805e41f4b71Sopenharmony_ci| type | string | 是 | 文件的内容类型,默认根据文件名或路径的后缀获取。 | 806e41f4b71Sopenharmony_ci 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci## RequestData 809e41f4b71Sopenharmony_ci[UploadConfig<sup>6+<sup>](#uploadconfig6)中的表单数据。 810e41f4b71Sopenharmony_ci 811e41f4b71Sopenharmony_ci**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.Download。 812e41f4b71Sopenharmony_ci 813e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 814e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 815e41f4b71Sopenharmony_ci| name | string | 是 | 表示表单元素的名称。 | 816e41f4b71Sopenharmony_ci| value | string | 是 | 表示表单元素的值。 | 817e41f4b71Sopenharmony_ci 818e41f4b71Sopenharmony_ci## request.downloadFile<sup>9+</sup> 819e41f4b71Sopenharmony_ci 820e41f4b71Sopenharmony_cidownloadFile(context: BaseContext, config: DownloadConfig): Promise<DownloadTask> 821e41f4b71Sopenharmony_ci 822e41f4b71Sopenharmony_ci下载,异步方法,使用promise形式返回结果。通过[on('complete'|'pause'|'remove')<sup>7+</sup>](#oncompletepauseremove7)可获取任务下载时的状态信息,包括任务完成、暂停或移除。通过[on('fail')<sup>7+</sup>](#onfail7)可获取任务下载时的错误信息。 823e41f4b71Sopenharmony_ci 824e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 825e41f4b71Sopenharmony_ci 826e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 827e41f4b71Sopenharmony_ci 828e41f4b71Sopenharmony_ci**参数:** 829e41f4b71Sopenharmony_ci 830e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 831e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 832e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 833e41f4b71Sopenharmony_ci | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 | 834e41f4b71Sopenharmony_ci 835e41f4b71Sopenharmony_ci**返回值:** 836e41f4b71Sopenharmony_ci 837e41f4b71Sopenharmony_ci | 类型 | 说明 | 838e41f4b71Sopenharmony_ci | -------- | -------- | 839e41f4b71Sopenharmony_ci | Promise<[DownloadTask](#downloadtask)> | 使用Promise方式,异步返回下载任务DownloadTask的Promise对象。 | 840e41f4b71Sopenharmony_ci 841e41f4b71Sopenharmony_ci**错误码:** 842e41f4b71Sopenharmony_ci 843e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。。 844e41f4b71Sopenharmony_ci 845e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 846e41f4b71Sopenharmony_ci | -------- | -------- | 847e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 848e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 849e41f4b71Sopenharmony_ci | 13400001 | file operation error. | 850e41f4b71Sopenharmony_ci | 13400002 | bad file path. | 851e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 852e41f4b71Sopenharmony_ci 853e41f4b71Sopenharmony_ci**示例:** 854e41f4b71Sopenharmony_ci 855e41f4b71Sopenharmony_ci ```ts 856e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 857e41f4b71Sopenharmony_ci 858e41f4b71Sopenharmony_ci try { 859e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 860e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 861e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 862e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 863e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 864e41f4b71Sopenharmony_ci }) 865e41f4b71Sopenharmony_ci } catch (err) { 866e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 867e41f4b71Sopenharmony_ci } 868e41f4b71Sopenharmony_ci ``` 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci> **说明:** 871e41f4b71Sopenharmony_ci> 872e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 873e41f4b71Sopenharmony_ci 874e41f4b71Sopenharmony_ci 875e41f4b71Sopenharmony_ci## request.downloadFile<sup>9+</sup> 876e41f4b71Sopenharmony_ci 877e41f4b71Sopenharmony_cidownloadFile(context: BaseContext, config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void; 878e41f4b71Sopenharmony_ci 879e41f4b71Sopenharmony_ci下载,异步方法,使用callback形式返回结果。通过[on('complete'|'pause'|'remove')<sup>7+</sup>](#oncompletepauseremove7)可获取任务下载时的状态信息,包括任务完成、暂停或移除。通过[on('fail')<sup>7+</sup>](#onfail7)可获取任务下载时的错误信息。 880e41f4b71Sopenharmony_ci 881e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 882e41f4b71Sopenharmony_ci 883e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 884e41f4b71Sopenharmony_ci 885e41f4b71Sopenharmony_ci**参数:** 886e41f4b71Sopenharmony_ci 887e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 888e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 889e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 890e41f4b71Sopenharmony_ci | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 | 891e41f4b71Sopenharmony_ci | callback | AsyncCallback<[DownloadTask](#downloadtask)> | 是 | 回调函数。当下载任务成功,err为undefined,data为获取到的DownloadTask对象;否则为错误对象。 | 892e41f4b71Sopenharmony_ci 893e41f4b71Sopenharmony_ci**错误码:** 894e41f4b71Sopenharmony_ci 895e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。。 896e41f4b71Sopenharmony_ci 897e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 898e41f4b71Sopenharmony_ci | -------- | -------- | 899e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 900e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 901e41f4b71Sopenharmony_ci | 13400001 | file operation error. | 902e41f4b71Sopenharmony_ci | 13400002 | bad file path. | 903e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 904e41f4b71Sopenharmony_ci 905e41f4b71Sopenharmony_ci**示例:** 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci ```ts 908e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 909e41f4b71Sopenharmony_ci 910e41f4b71Sopenharmony_ci try { 911e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 912e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { 913e41f4b71Sopenharmony_ci url: 'https://xxxx/xxxxx.hap', 914e41f4b71Sopenharmony_ci filePath: 'xxx/xxxxx.hap' 915e41f4b71Sopenharmony_ci }, (err: BusinessError, data: request.DownloadTask) => { 916e41f4b71Sopenharmony_ci if (err) { 917e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 918e41f4b71Sopenharmony_ci return; 919e41f4b71Sopenharmony_ci } 920e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 921e41f4b71Sopenharmony_ci }); 922e41f4b71Sopenharmony_ci } catch (err) { 923e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 924e41f4b71Sopenharmony_ci } 925e41f4b71Sopenharmony_ci ``` 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_ci> **说明:** 928e41f4b71Sopenharmony_ci> 929e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 930e41f4b71Sopenharmony_ci 931e41f4b71Sopenharmony_ci## request.download<sup>(deprecated)</sup> 932e41f4b71Sopenharmony_ci 933e41f4b71Sopenharmony_cidownload(config: DownloadConfig): Promise<DownloadTask> 934e41f4b71Sopenharmony_ci 935e41f4b71Sopenharmony_ci下载,异步方法,使用promise形式返回结果。 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_ci> **说明:** 938e41f4b71Sopenharmony_ci> 939e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[request.downloadFile<sup>9+</sup>](#requestdownloadfile9)替代。 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在FA模型下使用 942e41f4b71Sopenharmony_ci 943e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 944e41f4b71Sopenharmony_ci 945e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci**参数:** 948e41f4b71Sopenharmony_ci 949e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 950e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 951e41f4b71Sopenharmony_ci | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 | 952e41f4b71Sopenharmony_ci 953e41f4b71Sopenharmony_ci**返回值:** 954e41f4b71Sopenharmony_ci 955e41f4b71Sopenharmony_ci | 类型 | 说明 | 956e41f4b71Sopenharmony_ci | -------- | -------- | 957e41f4b71Sopenharmony_ci | Promise<[DownloadTask](#downloadtask)> | 使用Promise方式,异步返回下载任务DownloadTask的Promise对象。 | 958e41f4b71Sopenharmony_ci 959e41f4b71Sopenharmony_ci**错误码:** 960e41f4b71Sopenharmony_ci 961e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 962e41f4b71Sopenharmony_ci 963e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 964e41f4b71Sopenharmony_ci | -------- | -------- | 965e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 966e41f4b71Sopenharmony_ci 967e41f4b71Sopenharmony_ci**示例:** 968e41f4b71Sopenharmony_ci 969e41f4b71Sopenharmony_ci ```js 970e41f4b71Sopenharmony_ci let downloadTask; 971e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 972e41f4b71Sopenharmony_ci request.download({ url: 'https://xxxx/xxxx.hap' }).then((data) => { 973e41f4b71Sopenharmony_ci downloadTask = data; 974e41f4b71Sopenharmony_ci }).catch((err) => { 975e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 976e41f4b71Sopenharmony_ci }) 977e41f4b71Sopenharmony_ci ``` 978e41f4b71Sopenharmony_ci 979e41f4b71Sopenharmony_ci 980e41f4b71Sopenharmony_ci## request.download<sup>(deprecated)</sup> 981e41f4b71Sopenharmony_ci 982e41f4b71Sopenharmony_cidownload(config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void 983e41f4b71Sopenharmony_ci 984e41f4b71Sopenharmony_ci下载,异步方法,使用callback形式返回结果。 985e41f4b71Sopenharmony_ci 986e41f4b71Sopenharmony_ci> **说明:** 987e41f4b71Sopenharmony_ci> 988e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[request.downloadFile<sup>9+</sup>](#requestdownloadfile9-1)替代。 989e41f4b71Sopenharmony_ci 990e41f4b71Sopenharmony_ci**模型约束**:此接口仅可在FA模型下使用 991e41f4b71Sopenharmony_ci 992e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 993e41f4b71Sopenharmony_ci 994e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 995e41f4b71Sopenharmony_ci 996e41f4b71Sopenharmony_ci**参数:** 997e41f4b71Sopenharmony_ci 998e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 999e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1000e41f4b71Sopenharmony_ci | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 | 1001e41f4b71Sopenharmony_ci | callback | AsyncCallback<[DownloadTask](#downloadtask)> | 是 | 回调函数。当下载任务成功,err为undefined,data为获取到的DownloadTask对象;否则为错误对象。 | 1002e41f4b71Sopenharmony_ci 1003e41f4b71Sopenharmony_ci**错误码:** 1004e41f4b71Sopenharmony_ci 1005e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 1006e41f4b71Sopenharmony_ci 1007e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1008e41f4b71Sopenharmony_ci | -------- | -------- | 1009e41f4b71Sopenharmony_ci| 201 | the permissions check fails | 1010e41f4b71Sopenharmony_ci 1011e41f4b71Sopenharmony_ci**示例:** 1012e41f4b71Sopenharmony_ci 1013e41f4b71Sopenharmony_ci ```js 1014e41f4b71Sopenharmony_ci let downloadTask; 1015e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1016e41f4b71Sopenharmony_ci request.download({ url: 'https://xxxx/xxxxx.hap', 1017e41f4b71Sopenharmony_ci filePath: 'xxx/xxxxx.hap'}, (err, data) => { 1018e41f4b71Sopenharmony_ci if (err) { 1019e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1020e41f4b71Sopenharmony_ci return; 1021e41f4b71Sopenharmony_ci } 1022e41f4b71Sopenharmony_ci downloadTask = data; 1023e41f4b71Sopenharmony_ci }); 1024e41f4b71Sopenharmony_ci ``` 1025e41f4b71Sopenharmony_ci 1026e41f4b71Sopenharmony_ci## DownloadTask 1027e41f4b71Sopenharmony_ci 1028e41f4b71Sopenharmony_ci下载任务,使用下列方法前,需要先获取DownloadTask对象,promise形式通过[request.downloadFile<sup>9+</sup>](#requestdownloadfile9)获取,callback形式通过[request.downloadFile<sup>9+</sup>](#requestdownloadfile9-1)获取。 1029e41f4b71Sopenharmony_ci 1030e41f4b71Sopenharmony_ci 1031e41f4b71Sopenharmony_ci### on('progress') 1032e41f4b71Sopenharmony_ci 1033e41f4b71Sopenharmony_cion(type: 'progress', callback:(receivedSize: number, totalSize: number) => void): void 1034e41f4b71Sopenharmony_ci 1035e41f4b71Sopenharmony_ci订阅下载任务进度事件,异步方法,使用callback形式返回结果。 1036e41f4b71Sopenharmony_ci 1037e41f4b71Sopenharmony_ci> **说明:** 1038e41f4b71Sopenharmony_ci> 1039e41f4b71Sopenharmony_ci> 当应用处于后台时,为满足功耗性能要求,不支持调用此接口进行回调。 1040e41f4b71Sopenharmony_ci 1041e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1042e41f4b71Sopenharmony_ci 1043e41f4b71Sopenharmony_ci**参数:** 1044e41f4b71Sopenharmony_ci 1045e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1046e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1047e41f4b71Sopenharmony_ci | type | string | 是 | 订阅的事件类型,取值为'progress'(下载的进度信息)。 | 1048e41f4b71Sopenharmony_ci | callback | function | 是 | 下载任务进度的回调函数,返回已上传文件大小和上传文件总大小。 | 1049e41f4b71Sopenharmony_ci 1050e41f4b71Sopenharmony_ci 回调函数的参数: 1051e41f4b71Sopenharmony_ci 1052e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1053e41f4b71Sopenharmony_ci| -------- | -------- | -------- |-------------------------------------------------------------------------| 1054e41f4b71Sopenharmony_ci| receivedSize | number | 是 | 当前下载的进度,单位为字节。 | 1055e41f4b71Sopenharmony_ci| totalSize | number | 是 | 下载文件的总大小,单位为字节。在下载过程中,若服务器使用 chunk 方式传输导致无法从请求头中获取文件总大小时,totalSize 为 -1。 | 1056e41f4b71Sopenharmony_ci 1057e41f4b71Sopenharmony_ci**错误码:** 1058e41f4b71Sopenharmony_ci 1059e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1060e41f4b71Sopenharmony_ci 1061e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1062e41f4b71Sopenharmony_ci | -------- | -------- | 1063e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 1064e41f4b71Sopenharmony_ci 1065e41f4b71Sopenharmony_ci**示例:** 1066e41f4b71Sopenharmony_ci 1067e41f4b71Sopenharmony_ci ```ts 1068e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1069e41f4b71Sopenharmony_ci 1070e41f4b71Sopenharmony_ci try { 1071e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1072e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1073e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1074e41f4b71Sopenharmony_ci let progressCallback = (receivedSize: number, totalSize: number) => { 1075e41f4b71Sopenharmony_ci console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize); 1076e41f4b71Sopenharmony_ci }; 1077e41f4b71Sopenharmony_ci downloadTask.on('progress', progressCallback); 1078e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1079e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1080e41f4b71Sopenharmony_ci }) 1081e41f4b71Sopenharmony_ci } catch (err) { 1082e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1083e41f4b71Sopenharmony_ci } 1084e41f4b71Sopenharmony_ci ``` 1085e41f4b71Sopenharmony_ci 1086e41f4b71Sopenharmony_ci 1087e41f4b71Sopenharmony_ci### off('progress') 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_cioff(type: 'progress', callback?: (receivedSize: number, totalSize: number) => void): void 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci取消订阅下载任务进度事件。 1092e41f4b71Sopenharmony_ci 1093e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1094e41f4b71Sopenharmony_ci 1095e41f4b71Sopenharmony_ci**参数:** 1096e41f4b71Sopenharmony_ci 1097e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1098e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1099e41f4b71Sopenharmony_ci | type | string | 是 | 取消订阅的事件类型,取值为'progress'(下载的进度信息)。 | 1100e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 1101e41f4b71Sopenharmony_ci 1102e41f4b71Sopenharmony_ci 回调函数的参数: 1103e41f4b71Sopenharmony_ci 1104e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1105e41f4b71Sopenharmony_ci| -------- | -------- | -------- |-------------------------------------------------------------------------| 1106e41f4b71Sopenharmony_ci| receivedSize | number | 是 | 当前下载的进度,单位为字节。 | 1107e41f4b71Sopenharmony_ci| totalSize | number | 是 | 下载文件的总大小,单位为字节。在下载过程中,若服务器使用 chunk 方式传输导致无法从请求头中获取文件总大小时,totalSize 为 -1。 | 1108e41f4b71Sopenharmony_ci 1109e41f4b71Sopenharmony_ci**错误码:** 1110e41f4b71Sopenharmony_ci 1111e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1112e41f4b71Sopenharmony_ci 1113e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1114e41f4b71Sopenharmony_ci | -------- | -------- | 1115e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 1116e41f4b71Sopenharmony_ci 1117e41f4b71Sopenharmony_ci**示例:** 1118e41f4b71Sopenharmony_ci 1119e41f4b71Sopenharmony_ci ```ts 1120e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1121e41f4b71Sopenharmony_ci 1122e41f4b71Sopenharmony_citry { 1123e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1124e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1125e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1126e41f4b71Sopenharmony_ci let progressCallback1 = (receivedSize: number, totalSize: number) => { 1127e41f4b71Sopenharmony_ci console.info('Download delete progress notification.' + 'receivedSize:' + receivedSize + 'totalSize:' + totalSize); 1128e41f4b71Sopenharmony_ci }; 1129e41f4b71Sopenharmony_ci let progressCallback2 = (receivedSize: number, totalSize: number) => { 1130e41f4b71Sopenharmony_ci console.info('Download delete progress notification.' + 'receivedSize:' + receivedSize + 'totalSize:' + totalSize); 1131e41f4b71Sopenharmony_ci }; 1132e41f4b71Sopenharmony_ci downloadTask.on('progress', progressCallback1); 1133e41f4b71Sopenharmony_ci downloadTask.on('progress', progressCallback2); 1134e41f4b71Sopenharmony_ci //表示取消progressCallback1的订阅 1135e41f4b71Sopenharmony_ci downloadTask.off('progress', progressCallback1); 1136e41f4b71Sopenharmony_ci //表示取消订阅下载任务进度事件的所有回调 1137e41f4b71Sopenharmony_ci downloadTask.off('progress'); 1138e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1139e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1140e41f4b71Sopenharmony_ci }) 1141e41f4b71Sopenharmony_ci} catch (err) { 1142e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1143e41f4b71Sopenharmony_ci} 1144e41f4b71Sopenharmony_ci ``` 1145e41f4b71Sopenharmony_ci 1146e41f4b71Sopenharmony_ci 1147e41f4b71Sopenharmony_ci### on('complete'|'pause'|'remove')<sup>7+</sup> 1148e41f4b71Sopenharmony_ci 1149e41f4b71Sopenharmony_cion(type: 'complete'|'pause'|'remove', callback:() => void): void 1150e41f4b71Sopenharmony_ci 1151e41f4b71Sopenharmony_ci订阅下载任务相关的事件,异步方法,使用callback形式返回。 1152e41f4b71Sopenharmony_ci 1153e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.MiscServices.Download 1154e41f4b71Sopenharmony_ci 1155e41f4b71Sopenharmony_ci**参数:** 1156e41f4b71Sopenharmony_ci 1157e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1158e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1159e41f4b71Sopenharmony_ci | type | string | 是 | 订阅的事件类型。<br>- 取值为'complete',表示下载任务完成;<br/>- 取值为'pause',表示下载任务暂停;<br/>- 取值为'remove',表示下载任务移除。 | 1160e41f4b71Sopenharmony_ci | callback | function | 是 | 下载任务相关的回调函数。| 1161e41f4b71Sopenharmony_ci 1162e41f4b71Sopenharmony_ci**错误码:** 1163e41f4b71Sopenharmony_ci 1164e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1165e41f4b71Sopenharmony_ci 1166e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1167e41f4b71Sopenharmony_ci | -------- | -------- | 1168e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 1169e41f4b71Sopenharmony_ci 1170e41f4b71Sopenharmony_ci**示例:** 1171e41f4b71Sopenharmony_ci 1172e41f4b71Sopenharmony_ci ```ts 1173e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1174e41f4b71Sopenharmony_ci 1175e41f4b71Sopenharmony_citry { 1176e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1177e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1178e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1179e41f4b71Sopenharmony_ci let completeCallback = () => { 1180e41f4b71Sopenharmony_ci console.info('Download task completed.'); 1181e41f4b71Sopenharmony_ci }; 1182e41f4b71Sopenharmony_ci downloadTask.on('complete', completeCallback); 1183e41f4b71Sopenharmony_ci 1184e41f4b71Sopenharmony_ci let pauseCallback = () => { 1185e41f4b71Sopenharmony_ci console.info('Download task pause.'); 1186e41f4b71Sopenharmony_ci }; 1187e41f4b71Sopenharmony_ci downloadTask.on('pause', pauseCallback); 1188e41f4b71Sopenharmony_ci 1189e41f4b71Sopenharmony_ci let removeCallback = () => { 1190e41f4b71Sopenharmony_ci console.info('Download task remove.'); 1191e41f4b71Sopenharmony_ci }; 1192e41f4b71Sopenharmony_ci downloadTask.on('remove', removeCallback); 1193e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1194e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1195e41f4b71Sopenharmony_ci }) 1196e41f4b71Sopenharmony_ci} catch (err) { 1197e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1198e41f4b71Sopenharmony_ci} 1199e41f4b71Sopenharmony_ci ``` 1200e41f4b71Sopenharmony_ci 1201e41f4b71Sopenharmony_ci 1202e41f4b71Sopenharmony_ci### off('complete'|'pause'|'remove')<sup>7+</sup> 1203e41f4b71Sopenharmony_ci 1204e41f4b71Sopenharmony_cioff(type: 'complete'|'pause'|'remove', callback?: () => void): void 1205e41f4b71Sopenharmony_ci 1206e41f4b71Sopenharmony_ci取消订阅下载任务相关的事件。 1207e41f4b71Sopenharmony_ci 1208e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1209e41f4b71Sopenharmony_ci 1210e41f4b71Sopenharmony_ci**参数:** 1211e41f4b71Sopenharmony_ci 1212e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1213e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1214e41f4b71Sopenharmony_ci | type | string | 是 | 取消订阅的事件类型。<br/>- 取值为'complete',表示下载任务完成;<br/>- 取值为'pause',表示下载任务暂停;<br/>- 取值为'remove',表示下载任务移除。 | 1215e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 1216e41f4b71Sopenharmony_ci 1217e41f4b71Sopenharmony_ci**错误码:** 1218e41f4b71Sopenharmony_ci 1219e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1220e41f4b71Sopenharmony_ci 1221e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1222e41f4b71Sopenharmony_ci | -------- | -------- | 1223e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 1224e41f4b71Sopenharmony_ci 1225e41f4b71Sopenharmony_ci**示例:** 1226e41f4b71Sopenharmony_ci 1227e41f4b71Sopenharmony_ci ```ts 1228e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1229e41f4b71Sopenharmony_ci 1230e41f4b71Sopenharmony_citry { 1231e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1232e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1233e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1234e41f4b71Sopenharmony_ci let completeCallback1 = () => { 1235e41f4b71Sopenharmony_ci console.info('Download delete complete notification.'); 1236e41f4b71Sopenharmony_ci }; 1237e41f4b71Sopenharmony_ci let completeCallback2 = () => { 1238e41f4b71Sopenharmony_ci console.info('Download delete complete notification.'); 1239e41f4b71Sopenharmony_ci }; 1240e41f4b71Sopenharmony_ci downloadTask.on('complete', completeCallback1); 1241e41f4b71Sopenharmony_ci downloadTask.on('complete', completeCallback2); 1242e41f4b71Sopenharmony_ci //表示取消completeCallback1的订阅 1243e41f4b71Sopenharmony_ci downloadTask.off('complete', completeCallback1); 1244e41f4b71Sopenharmony_ci //表示取消订阅下载任务完成的所有回调 1245e41f4b71Sopenharmony_ci downloadTask.off('complete'); 1246e41f4b71Sopenharmony_ci 1247e41f4b71Sopenharmony_ci let pauseCallback1 = () => { 1248e41f4b71Sopenharmony_ci console.info('Download delete pause notification.'); 1249e41f4b71Sopenharmony_ci }; 1250e41f4b71Sopenharmony_ci let pauseCallback2 = () => { 1251e41f4b71Sopenharmony_ci console.info('Download delete pause notification.'); 1252e41f4b71Sopenharmony_ci }; 1253e41f4b71Sopenharmony_ci downloadTask.on('pause', pauseCallback1); 1254e41f4b71Sopenharmony_ci downloadTask.on('pause', pauseCallback2); 1255e41f4b71Sopenharmony_ci //表示取消pauseCallback1的订阅 1256e41f4b71Sopenharmony_ci downloadTask.off('pause', pauseCallback1); 1257e41f4b71Sopenharmony_ci //表示取消订阅下载任务暂停的所有回调 1258e41f4b71Sopenharmony_ci downloadTask.off('pause'); 1259e41f4b71Sopenharmony_ci 1260e41f4b71Sopenharmony_ci let removeCallback1 = () => { 1261e41f4b71Sopenharmony_ci console.info('Download delete remove notification.'); 1262e41f4b71Sopenharmony_ci }; 1263e41f4b71Sopenharmony_ci let removeCallback2 = () => { 1264e41f4b71Sopenharmony_ci console.info('Download delete remove notification.'); 1265e41f4b71Sopenharmony_ci }; 1266e41f4b71Sopenharmony_ci downloadTask.on('remove', removeCallback1); 1267e41f4b71Sopenharmony_ci downloadTask.on('remove', removeCallback2); 1268e41f4b71Sopenharmony_ci //表示取消removeCallback1的订阅 1269e41f4b71Sopenharmony_ci downloadTask.off('remove', removeCallback1); 1270e41f4b71Sopenharmony_ci //表示取消订阅下载任务移除的所有回调 1271e41f4b71Sopenharmony_ci downloadTask.off('remove'); 1272e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1273e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1274e41f4b71Sopenharmony_ci }) 1275e41f4b71Sopenharmony_ci} catch (err) { 1276e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1277e41f4b71Sopenharmony_ci} 1278e41f4b71Sopenharmony_ci 1279e41f4b71Sopenharmony_ci ``` 1280e41f4b71Sopenharmony_ci 1281e41f4b71Sopenharmony_ci 1282e41f4b71Sopenharmony_ci### on('fail')<sup>7+</sup> 1283e41f4b71Sopenharmony_ci 1284e41f4b71Sopenharmony_cion(type: 'fail', callback: (err: number) => void): void 1285e41f4b71Sopenharmony_ci 1286e41f4b71Sopenharmony_ci订阅下载任务失败事件,异步方法,使用callback形式返回结果。 1287e41f4b71Sopenharmony_ci 1288e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1289e41f4b71Sopenharmony_ci 1290e41f4b71Sopenharmony_ci**参数:** 1291e41f4b71Sopenharmony_ci 1292e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1293e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1294e41f4b71Sopenharmony_ci | type | string | 是 | 订阅的事件类型,取值为'fail'(下载失败)。 | 1295e41f4b71Sopenharmony_ci | callback | function | 是 | 下载失败的回调函数。 | 1296e41f4b71Sopenharmony_ci 1297e41f4b71Sopenharmony_ci 回调函数的参数: 1298e41f4b71Sopenharmony_ci 1299e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1300e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 1301e41f4b71Sopenharmony_ci| err | number | 是 | 下载失败的错误码,错误原因见[下载任务的错误码](#下载任务的错误码)。 | 1302e41f4b71Sopenharmony_ci 1303e41f4b71Sopenharmony_ci**错误码:** 1304e41f4b71Sopenharmony_ci 1305e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1306e41f4b71Sopenharmony_ci 1307e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1308e41f4b71Sopenharmony_ci | -------- | -------- | 1309e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 1310e41f4b71Sopenharmony_ci 1311e41f4b71Sopenharmony_ci**示例:** 1312e41f4b71Sopenharmony_ci 1313e41f4b71Sopenharmony_ci ```ts 1314e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1315e41f4b71Sopenharmony_ci 1316e41f4b71Sopenharmony_citry { 1317e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1318e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1319e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1320e41f4b71Sopenharmony_ci let failCallback = (err: number) => { 1321e41f4b71Sopenharmony_ci console.error(`Failed to download the task. Code: ${err}`); 1322e41f4b71Sopenharmony_ci }; 1323e41f4b71Sopenharmony_ci downloadTask.on('fail', failCallback); 1324e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1325e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1326e41f4b71Sopenharmony_ci }) 1327e41f4b71Sopenharmony_ci} catch (err) { 1328e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1329e41f4b71Sopenharmony_ci} 1330e41f4b71Sopenharmony_ci ``` 1331e41f4b71Sopenharmony_ci 1332e41f4b71Sopenharmony_ci 1333e41f4b71Sopenharmony_ci### off('fail')<sup>7+</sup> 1334e41f4b71Sopenharmony_ci 1335e41f4b71Sopenharmony_cioff(type: 'fail', callback?: (err: number) => void): void 1336e41f4b71Sopenharmony_ci 1337e41f4b71Sopenharmony_ci取消订阅下载任务失败事件。 1338e41f4b71Sopenharmony_ci 1339e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1340e41f4b71Sopenharmony_ci 1341e41f4b71Sopenharmony_ci**参数:** 1342e41f4b71Sopenharmony_ci 1343e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1344e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1345e41f4b71Sopenharmony_ci | type | string | 是 | 取消订阅的事件类型,取值为'fail'(下载失败)。 | 1346e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 1347e41f4b71Sopenharmony_ci 1348e41f4b71Sopenharmony_ci**错误码:** 1349e41f4b71Sopenharmony_ci 1350e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1351e41f4b71Sopenharmony_ci 1352e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1353e41f4b71Sopenharmony_ci | -------- | -------- | 1354e41f4b71Sopenharmony_ci | 401 | the parameters check fails.Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 1355e41f4b71Sopenharmony_ci 1356e41f4b71Sopenharmony_ci**示例:** 1357e41f4b71Sopenharmony_ci 1358e41f4b71Sopenharmony_ci ```ts 1359e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1360e41f4b71Sopenharmony_ci 1361e41f4b71Sopenharmony_citry { 1362e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1363e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1364e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1365e41f4b71Sopenharmony_ci let failCallback1 = (err: number) => { 1366e41f4b71Sopenharmony_ci console.error(`Failed to download the task. Code: ${err}`); 1367e41f4b71Sopenharmony_ci }; 1368e41f4b71Sopenharmony_ci let failCallback2 = (err: number) => { 1369e41f4b71Sopenharmony_ci console.error(`Failed to download the task. Code: ${err}`); 1370e41f4b71Sopenharmony_ci }; 1371e41f4b71Sopenharmony_ci downloadTask.on('fail', failCallback1); 1372e41f4b71Sopenharmony_ci downloadTask.on('fail', failCallback2); 1373e41f4b71Sopenharmony_ci //表示取消failCallback1的订阅 1374e41f4b71Sopenharmony_ci downloadTask.off('fail', failCallback1); 1375e41f4b71Sopenharmony_ci //表示取消订阅下载任务失败的所有回调 1376e41f4b71Sopenharmony_ci downloadTask.off('fail'); 1377e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1378e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1379e41f4b71Sopenharmony_ci }) 1380e41f4b71Sopenharmony_ci} catch (err) { 1381e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1382e41f4b71Sopenharmony_ci} 1383e41f4b71Sopenharmony_ci ``` 1384e41f4b71Sopenharmony_ci 1385e41f4b71Sopenharmony_ci### delete<sup>9+</sup> 1386e41f4b71Sopenharmony_ci 1387e41f4b71Sopenharmony_cidelete(): Promise<boolean> 1388e41f4b71Sopenharmony_ci 1389e41f4b71Sopenharmony_ci移除下载的任务,异步方法,使用promise形式返回结果。 1390e41f4b71Sopenharmony_ci 1391e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1392e41f4b71Sopenharmony_ci 1393e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1394e41f4b71Sopenharmony_ci 1395e41f4b71Sopenharmony_ci**返回值:** 1396e41f4b71Sopenharmony_ci 1397e41f4b71Sopenharmony_ci | 类型 | 说明 | 1398e41f4b71Sopenharmony_ci | -------- | -------- | 1399e41f4b71Sopenharmony_ci | Promise<boolean> | 使用promise方式异步回调,返回true表示移除下载任务成功;返回false表示移除下载任务失败。 | 1400e41f4b71Sopenharmony_ci 1401e41f4b71Sopenharmony_ci**错误码:** 1402e41f4b71Sopenharmony_ci 1403e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1404e41f4b71Sopenharmony_ci 1405e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1406e41f4b71Sopenharmony_ci | -------- | -------- | 1407e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1408e41f4b71Sopenharmony_ci 1409e41f4b71Sopenharmony_ci**示例:** 1410e41f4b71Sopenharmony_ci 1411e41f4b71Sopenharmony_ci ```ts 1412e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1413e41f4b71Sopenharmony_ci 1414e41f4b71Sopenharmony_citry { 1415e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1416e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1417e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1418e41f4b71Sopenharmony_ci downloadTask.delete().then((result: boolean) => { 1419e41f4b71Sopenharmony_ci console.info('Succeeded in removing the download task.'); 1420e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1421e41f4b71Sopenharmony_ci console.error(`Failed to remove the download task. Code: ${err.code}, message: ${err.message}`); 1422e41f4b71Sopenharmony_ci }); 1423e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1424e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1425e41f4b71Sopenharmony_ci }) 1426e41f4b71Sopenharmony_ci} catch (err) { 1427e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1428e41f4b71Sopenharmony_ci} 1429e41f4b71Sopenharmony_ci ``` 1430e41f4b71Sopenharmony_ci 1431e41f4b71Sopenharmony_ci> **说明:** 1432e41f4b71Sopenharmony_ci> 1433e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1434e41f4b71Sopenharmony_ci 1435e41f4b71Sopenharmony_ci 1436e41f4b71Sopenharmony_ci### delete<sup>9+</sup> 1437e41f4b71Sopenharmony_ci 1438e41f4b71Sopenharmony_cidelete(callback: AsyncCallback<boolean>): void 1439e41f4b71Sopenharmony_ci 1440e41f4b71Sopenharmony_ci移除下载的任务,异步方法,使用callback形式返回结果。 1441e41f4b71Sopenharmony_ci 1442e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1445e41f4b71Sopenharmony_ci 1446e41f4b71Sopenharmony_ci**参数:** 1447e41f4b71Sopenharmony_ci 1448e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1449e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1450e41f4b71Sopenharmony_ci | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示异步返回移除任务是否成功;返回false表示异步返回移除任务失败。 | 1451e41f4b71Sopenharmony_ci 1452e41f4b71Sopenharmony_ci**错误码:** 1453e41f4b71Sopenharmony_ci 1454e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1455e41f4b71Sopenharmony_ci 1456e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1457e41f4b71Sopenharmony_ci | -------- | -------- | 1458e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1459e41f4b71Sopenharmony_ci 1460e41f4b71Sopenharmony_ci**示例:** 1461e41f4b71Sopenharmony_ci 1462e41f4b71Sopenharmony_ci ```ts 1463e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1464e41f4b71Sopenharmony_ci 1465e41f4b71Sopenharmony_citry { 1466e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1467e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1468e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1469e41f4b71Sopenharmony_ci downloadTask.delete((err: BusinessError, result: boolean) => { 1470e41f4b71Sopenharmony_ci if (err) { 1471e41f4b71Sopenharmony_ci console.error(`Failed to remove the download task. Code: ${err.code}, message: ${err.message}`); 1472e41f4b71Sopenharmony_ci return; 1473e41f4b71Sopenharmony_ci } 1474e41f4b71Sopenharmony_ci console.info('Succeeded in removing the download task.'); 1475e41f4b71Sopenharmony_ci }); 1476e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1477e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1478e41f4b71Sopenharmony_ci }) 1479e41f4b71Sopenharmony_ci} catch (err) { 1480e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1481e41f4b71Sopenharmony_ci} 1482e41f4b71Sopenharmony_ci ``` 1483e41f4b71Sopenharmony_ci 1484e41f4b71Sopenharmony_ci> **说明:** 1485e41f4b71Sopenharmony_ci> 1486e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1487e41f4b71Sopenharmony_ci 1488e41f4b71Sopenharmony_ci 1489e41f4b71Sopenharmony_ci### getTaskInfo<sup>9+</sup> 1490e41f4b71Sopenharmony_ci 1491e41f4b71Sopenharmony_cigetTaskInfo(): Promise<DownloadInfo> 1492e41f4b71Sopenharmony_ci 1493e41f4b71Sopenharmony_ci查询下载任务的信息,异步方法,使用promise形式返回DownloadInfo里的信息。 1494e41f4b71Sopenharmony_ci 1495e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1496e41f4b71Sopenharmony_ci 1497e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1498e41f4b71Sopenharmony_ci 1499e41f4b71Sopenharmony_ci**返回值:** 1500e41f4b71Sopenharmony_ci 1501e41f4b71Sopenharmony_ci | 类型 | 说明 | 1502e41f4b71Sopenharmony_ci | -------- | -------- | 1503e41f4b71Sopenharmony_ci | Promise<[DownloadInfo](#downloadinfo7)> | 使用promise方式,异步返回下载任务信息DownloadInfo的Promise对象。 | 1504e41f4b71Sopenharmony_ci 1505e41f4b71Sopenharmony_ci**错误码:** 1506e41f4b71Sopenharmony_ci 1507e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1508e41f4b71Sopenharmony_ci 1509e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1510e41f4b71Sopenharmony_ci | -------- | -------- | 1511e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1512e41f4b71Sopenharmony_ci 1513e41f4b71Sopenharmony_ci**示例:** 1514e41f4b71Sopenharmony_ci 1515e41f4b71Sopenharmony_ci ```ts 1516e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1517e41f4b71Sopenharmony_ci 1518e41f4b71Sopenharmony_citry { 1519e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1520e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1521e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1522e41f4b71Sopenharmony_ci downloadTask.getTaskInfo().then((downloadInfo: request.DownloadInfo) => { 1523e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download task') 1524e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1525e41f4b71Sopenharmony_ci console.error(`Failed to query the download task. Code: ${err.code}, message: ${err.message}`) 1526e41f4b71Sopenharmony_ci }); 1527e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1528e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1529e41f4b71Sopenharmony_ci }) 1530e41f4b71Sopenharmony_ci} catch (err) { 1531e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1532e41f4b71Sopenharmony_ci} 1533e41f4b71Sopenharmony_ci ``` 1534e41f4b71Sopenharmony_ci 1535e41f4b71Sopenharmony_ci> **说明:** 1536e41f4b71Sopenharmony_ci> 1537e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1538e41f4b71Sopenharmony_ci 1539e41f4b71Sopenharmony_ci 1540e41f4b71Sopenharmony_ci### getTaskInfo<sup>9+</sup> 1541e41f4b71Sopenharmony_ci 1542e41f4b71Sopenharmony_cigetTaskInfo(callback: AsyncCallback<DownloadInfo>): void 1543e41f4b71Sopenharmony_ci 1544e41f4b71Sopenharmony_ci查询下载的任务,异步方法,使用callback形式返回结果。 1545e41f4b71Sopenharmony_ci 1546e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1547e41f4b71Sopenharmony_ci 1548e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1549e41f4b71Sopenharmony_ci 1550e41f4b71Sopenharmony_ci**参数:** 1551e41f4b71Sopenharmony_ci 1552e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1553e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1554e41f4b71Sopenharmony_ci | callback | AsyncCallback<[DownloadInfo](#downloadinfo7)> | 是 | 回调函数。当查询下载任务操作成功,err为undefined,data为获取到的DownloadInfo对象;否则为错误对象。 | 1555e41f4b71Sopenharmony_ci 1556e41f4b71Sopenharmony_ci**错误码:** 1557e41f4b71Sopenharmony_ci 1558e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1559e41f4b71Sopenharmony_ci 1560e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1561e41f4b71Sopenharmony_ci | -------- | -------- | 1562e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_ci**示例:** 1565e41f4b71Sopenharmony_ci 1566e41f4b71Sopenharmony_ci ```ts 1567e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1568e41f4b71Sopenharmony_ci 1569e41f4b71Sopenharmony_citry { 1570e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1571e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1572e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1573e41f4b71Sopenharmony_ci downloadTask.getTaskInfo((err: BusinessError, downloadInfo: request.DownloadInfo) => { 1574e41f4b71Sopenharmony_ci if (err) { 1575e41f4b71Sopenharmony_ci console.error(`Failed to query the download mimeType. Code: ${err.code}, message: ${err.message}`); 1576e41f4b71Sopenharmony_ci } else { 1577e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download mimeType'); 1578e41f4b71Sopenharmony_ci } 1579e41f4b71Sopenharmony_ci }); 1580e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1581e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1582e41f4b71Sopenharmony_ci }) 1583e41f4b71Sopenharmony_ci} catch (err) { 1584e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1585e41f4b71Sopenharmony_ci} 1586e41f4b71Sopenharmony_ci ``` 1587e41f4b71Sopenharmony_ci 1588e41f4b71Sopenharmony_ci> **说明:** 1589e41f4b71Sopenharmony_ci> 1590e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1591e41f4b71Sopenharmony_ci 1592e41f4b71Sopenharmony_ci 1593e41f4b71Sopenharmony_ci### getTaskMimeType<sup>9+</sup> 1594e41f4b71Sopenharmony_ci 1595e41f4b71Sopenharmony_cigetTaskMimeType(): Promise<string> 1596e41f4b71Sopenharmony_ci 1597e41f4b71Sopenharmony_ci查询下载的任务的MimeType(HTTP中表示资源的媒体类型),异步方法,使用promise形式返回结果。 1598e41f4b71Sopenharmony_ci 1599e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1600e41f4b71Sopenharmony_ci 1601e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1602e41f4b71Sopenharmony_ci 1603e41f4b71Sopenharmony_ci**返回值:** 1604e41f4b71Sopenharmony_ci 1605e41f4b71Sopenharmony_ci | 类型 | 说明 | 1606e41f4b71Sopenharmony_ci | -------- | -------- | 1607e41f4b71Sopenharmony_ci | Promise<string> | 使用promise方式,异步返回下载任务的MimeType的Promise对象。 | 1608e41f4b71Sopenharmony_ci 1609e41f4b71Sopenharmony_ci**错误码:** 1610e41f4b71Sopenharmony_ci 1611e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1612e41f4b71Sopenharmony_ci 1613e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1614e41f4b71Sopenharmony_ci | -------- | -------- | 1615e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1616e41f4b71Sopenharmony_ci 1617e41f4b71Sopenharmony_ci**示例:** 1618e41f4b71Sopenharmony_ci 1619e41f4b71Sopenharmony_ci ```ts 1620e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1621e41f4b71Sopenharmony_ci 1622e41f4b71Sopenharmony_citry { 1623e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1624e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1625e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1626e41f4b71Sopenharmony_ci downloadTask.getTaskMimeType().then((data: string) => { 1627e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download MimeType'); 1628e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1629e41f4b71Sopenharmony_ci console.error(`Failed to query the download MimeType. Code: ${err.code}, message: ${err.message}`) 1630e41f4b71Sopenharmony_ci }); 1631e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1632e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1633e41f4b71Sopenharmony_ci }) 1634e41f4b71Sopenharmony_ci} catch (err) { 1635e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1636e41f4b71Sopenharmony_ci} 1637e41f4b71Sopenharmony_ci ``` 1638e41f4b71Sopenharmony_ci 1639e41f4b71Sopenharmony_ci> **说明:** 1640e41f4b71Sopenharmony_ci> 1641e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1642e41f4b71Sopenharmony_ci 1643e41f4b71Sopenharmony_ci 1644e41f4b71Sopenharmony_ci### getTaskMimeType<sup>9+</sup> 1645e41f4b71Sopenharmony_ci 1646e41f4b71Sopenharmony_cigetTaskMimeType(callback: AsyncCallback<string>): void; 1647e41f4b71Sopenharmony_ci 1648e41f4b71Sopenharmony_ci查询下载的任务的 MimeType,异步方法,使用callback形式返回结果。 1649e41f4b71Sopenharmony_ci 1650e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1651e41f4b71Sopenharmony_ci 1652e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci**参数:** 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1657e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1658e41f4b71Sopenharmony_ci | callback | AsyncCallback<string> | 是 | 回调函数。当查询下载任务MimeType成功,err为undefined,data为获取到的下载任务的MimeType对象;否则为错误对象。 | 1659e41f4b71Sopenharmony_ci 1660e41f4b71Sopenharmony_ci**错误码:** 1661e41f4b71Sopenharmony_ci 1662e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1663e41f4b71Sopenharmony_ci 1664e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1665e41f4b71Sopenharmony_ci | -------- | -------- | 1666e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1667e41f4b71Sopenharmony_ci 1668e41f4b71Sopenharmony_ci**示例:** 1669e41f4b71Sopenharmony_ci 1670e41f4b71Sopenharmony_ci ```ts 1671e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1672e41f4b71Sopenharmony_ci 1673e41f4b71Sopenharmony_citry { 1674e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1675e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1676e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1677e41f4b71Sopenharmony_ci downloadTask.getTaskMimeType((err: BusinessError, data: string) => { 1678e41f4b71Sopenharmony_ci if (err) { 1679e41f4b71Sopenharmony_ci console.error(`Failed to query the download mimeType. Code: ${err.code}, message: ${err.message}`); 1680e41f4b71Sopenharmony_ci } else { 1681e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download mimeType'); 1682e41f4b71Sopenharmony_ci } 1683e41f4b71Sopenharmony_ci }); 1684e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1685e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1686e41f4b71Sopenharmony_ci }) 1687e41f4b71Sopenharmony_ci} catch (err) { 1688e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1689e41f4b71Sopenharmony_ci} 1690e41f4b71Sopenharmony_ci ``` 1691e41f4b71Sopenharmony_ci 1692e41f4b71Sopenharmony_ci> **说明:** 1693e41f4b71Sopenharmony_ci> 1694e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1695e41f4b71Sopenharmony_ci 1696e41f4b71Sopenharmony_ci 1697e41f4b71Sopenharmony_ci### suspend<sup>9+</sup> 1698e41f4b71Sopenharmony_ci 1699e41f4b71Sopenharmony_cisuspend(): Promise<boolean> 1700e41f4b71Sopenharmony_ci 1701e41f4b71Sopenharmony_ci暂停下载任务,异步方法,使用promise形式返回结果。 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1704e41f4b71Sopenharmony_ci 1705e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1706e41f4b71Sopenharmony_ci 1707e41f4b71Sopenharmony_ci**返回值:** 1708e41f4b71Sopenharmony_ci 1709e41f4b71Sopenharmony_ci | 类型 | 说明 | 1710e41f4b71Sopenharmony_ci | -------- | -------- | 1711e41f4b71Sopenharmony_ci | Promise<boolean> | 使用promise方式异步回调,返回true表示暂停下载任务成功;返回false表示暂停下载任务失败。 | 1712e41f4b71Sopenharmony_ci 1713e41f4b71Sopenharmony_ci**错误码:** 1714e41f4b71Sopenharmony_ci 1715e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1716e41f4b71Sopenharmony_ci 1717e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1718e41f4b71Sopenharmony_ci | -------- | -------- | 1719e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1720e41f4b71Sopenharmony_ci 1721e41f4b71Sopenharmony_ci**示例:** 1722e41f4b71Sopenharmony_ci 1723e41f4b71Sopenharmony_ci ```ts 1724e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_citry { 1727e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1728e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1729e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1730e41f4b71Sopenharmony_ci downloadTask.suspend().then((result: boolean) => { 1731e41f4b71Sopenharmony_ci console.info('Succeeded in pausing the download task.'); 1732e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1733e41f4b71Sopenharmony_ci console.error(`Failed to pause the download task. Code: ${err.code}, message: ${err.message}`); 1734e41f4b71Sopenharmony_ci }); 1735e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1736e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1737e41f4b71Sopenharmony_ci }) 1738e41f4b71Sopenharmony_ci} catch (err) { 1739e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1740e41f4b71Sopenharmony_ci} 1741e41f4b71Sopenharmony_ci ``` 1742e41f4b71Sopenharmony_ci 1743e41f4b71Sopenharmony_ci> **说明:** 1744e41f4b71Sopenharmony_ci> 1745e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1746e41f4b71Sopenharmony_ci 1747e41f4b71Sopenharmony_ci 1748e41f4b71Sopenharmony_ci### suspend<sup>9+</sup> 1749e41f4b71Sopenharmony_ci 1750e41f4b71Sopenharmony_cisuspend(callback: AsyncCallback<boolean>): void 1751e41f4b71Sopenharmony_ci 1752e41f4b71Sopenharmony_ci暂停下载任务,异步方法,使用callback形式返回结果。 1753e41f4b71Sopenharmony_ci 1754e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1755e41f4b71Sopenharmony_ci 1756e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1757e41f4b71Sopenharmony_ci 1758e41f4b71Sopenharmony_ci**参数:** 1759e41f4b71Sopenharmony_ci 1760e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1761e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1762e41f4b71Sopenharmony_ci | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示暂停下载任务成功;返回false表示暂停下载任务失败。 | 1763e41f4b71Sopenharmony_ci 1764e41f4b71Sopenharmony_ci**错误码:** 1765e41f4b71Sopenharmony_ci 1766e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1767e41f4b71Sopenharmony_ci 1768e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1769e41f4b71Sopenharmony_ci | -------- | -------- | 1770e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1771e41f4b71Sopenharmony_ci 1772e41f4b71Sopenharmony_ci**示例:** 1773e41f4b71Sopenharmony_ci 1774e41f4b71Sopenharmony_ci ```ts 1775e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1776e41f4b71Sopenharmony_ci 1777e41f4b71Sopenharmony_citry { 1778e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1779e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1780e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1781e41f4b71Sopenharmony_ci downloadTask.suspend((err: BusinessError, result: boolean) => { 1782e41f4b71Sopenharmony_ci if (err) { 1783e41f4b71Sopenharmony_ci console.error(`Failed to pause the download task. Code: ${err.code}, message: ${err.message}`); 1784e41f4b71Sopenharmony_ci return; 1785e41f4b71Sopenharmony_ci } 1786e41f4b71Sopenharmony_ci console.info('Succeeded in pausing the download task.'); 1787e41f4b71Sopenharmony_ci }); 1788e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1789e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1790e41f4b71Sopenharmony_ci }) 1791e41f4b71Sopenharmony_ci} catch (err) { 1792e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1793e41f4b71Sopenharmony_ci} 1794e41f4b71Sopenharmony_ci ``` 1795e41f4b71Sopenharmony_ci 1796e41f4b71Sopenharmony_ci> **说明:** 1797e41f4b71Sopenharmony_ci> 1798e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1799e41f4b71Sopenharmony_ci 1800e41f4b71Sopenharmony_ci 1801e41f4b71Sopenharmony_ci### restore<sup>9+</sup> 1802e41f4b71Sopenharmony_ci 1803e41f4b71Sopenharmony_cirestore(): Promise<boolean> 1804e41f4b71Sopenharmony_ci 1805e41f4b71Sopenharmony_ci重新启动暂停的下载任务,异步方法,使用promise形式返回结果。 1806e41f4b71Sopenharmony_ci 1807e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1808e41f4b71Sopenharmony_ci 1809e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1810e41f4b71Sopenharmony_ci 1811e41f4b71Sopenharmony_ci**返回值:** 1812e41f4b71Sopenharmony_ci 1813e41f4b71Sopenharmony_ci | 类型 | 说明 | 1814e41f4b71Sopenharmony_ci | -------- | -------- | 1815e41f4b71Sopenharmony_ci | Promise<boolean> | 使用promise方式异步回调,返回true表示重新启动已暂停的下载任务成功;返回false表示重新启动下载任务失败。 | 1816e41f4b71Sopenharmony_ci 1817e41f4b71Sopenharmony_ci**错误码:** 1818e41f4b71Sopenharmony_ci 1819e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1822e41f4b71Sopenharmony_ci | -------- | -------- | 1823e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1824e41f4b71Sopenharmony_ci 1825e41f4b71Sopenharmony_ci**示例:** 1826e41f4b71Sopenharmony_ci 1827e41f4b71Sopenharmony_ci ```ts 1828e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1829e41f4b71Sopenharmony_ci 1830e41f4b71Sopenharmony_citry { 1831e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1832e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1833e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1834e41f4b71Sopenharmony_ci downloadTask.restore().then((result: boolean) => { 1835e41f4b71Sopenharmony_ci console.info('Succeeded in resuming the download task.') 1836e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1837e41f4b71Sopenharmony_ci console.error(`Failed to resume the download task. Code: ${err.code}, message: ${err.message}`); 1838e41f4b71Sopenharmony_ci }); 1839e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1840e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1841e41f4b71Sopenharmony_ci }) 1842e41f4b71Sopenharmony_ci} catch (err) { 1843e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1844e41f4b71Sopenharmony_ci} 1845e41f4b71Sopenharmony_ci ``` 1846e41f4b71Sopenharmony_ci 1847e41f4b71Sopenharmony_ci> **说明:** 1848e41f4b71Sopenharmony_ci> 1849e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1850e41f4b71Sopenharmony_ci 1851e41f4b71Sopenharmony_ci 1852e41f4b71Sopenharmony_ci### restore<sup>9+</sup> 1853e41f4b71Sopenharmony_ci 1854e41f4b71Sopenharmony_cirestore(callback: AsyncCallback<boolean>): void 1855e41f4b71Sopenharmony_ci 1856e41f4b71Sopenharmony_ci重新启动暂停的下载任务,异步方法,使用callback形式返回结果。 1857e41f4b71Sopenharmony_ci 1858e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1859e41f4b71Sopenharmony_ci 1860e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1861e41f4b71Sopenharmony_ci 1862e41f4b71Sopenharmony_ci**参数:** 1863e41f4b71Sopenharmony_ci 1864e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1865e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1866e41f4b71Sopenharmony_ci | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示重新启动已暂停的下载任务成功;返回false表示重新启动下载任务失败。 | 1867e41f4b71Sopenharmony_ci 1868e41f4b71Sopenharmony_ci**错误码:** 1869e41f4b71Sopenharmony_ci 1870e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 1871e41f4b71Sopenharmony_ci 1872e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1873e41f4b71Sopenharmony_ci | -------- | -------- | 1874e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1875e41f4b71Sopenharmony_ci 1876e41f4b71Sopenharmony_ci**示例:** 1877e41f4b71Sopenharmony_ci 1878e41f4b71Sopenharmony_ci ```ts 1879e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1880e41f4b71Sopenharmony_ci 1881e41f4b71Sopenharmony_citry { 1882e41f4b71Sopenharmony_ci // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 1883e41f4b71Sopenharmony_ci request.downloadFile(getContext(), { url: 'https://xxxx/xxxx.hap' }).then((data: request.DownloadTask) => { 1884e41f4b71Sopenharmony_ci let downloadTask: request.DownloadTask = data; 1885e41f4b71Sopenharmony_ci downloadTask.restore((err: BusinessError, result: boolean) => { 1886e41f4b71Sopenharmony_ci if (err) { 1887e41f4b71Sopenharmony_ci console.error(`Failed to resume the download task. Code: ${err.code}, message: ${err.message}`); 1888e41f4b71Sopenharmony_ci return; 1889e41f4b71Sopenharmony_ci } 1890e41f4b71Sopenharmony_ci console.info('Succeeded in resuming the download task.'); 1891e41f4b71Sopenharmony_ci }); 1892e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1893e41f4b71Sopenharmony_ci console.error(`Failed to request the download. Code: ${err.code}, message: ${err.message}`); 1894e41f4b71Sopenharmony_ci }) 1895e41f4b71Sopenharmony_ci} catch (err) { 1896e41f4b71Sopenharmony_ci console.error(`Failed to request the download. err: ${JSON.stringify(err)}`); 1897e41f4b71Sopenharmony_ci} 1898e41f4b71Sopenharmony_ci ``` 1899e41f4b71Sopenharmony_ci 1900e41f4b71Sopenharmony_ci> **说明:** 1901e41f4b71Sopenharmony_ci> 1902e41f4b71Sopenharmony_ci> 由于不存在401报错场景,在 api12 中 `401 the parameters check fails` 这个错误码被移除。 1903e41f4b71Sopenharmony_ci 1904e41f4b71Sopenharmony_ci 1905e41f4b71Sopenharmony_ci### remove<sup>(deprecated)</sup> 1906e41f4b71Sopenharmony_ci 1907e41f4b71Sopenharmony_ciremove(): Promise<boolean> 1908e41f4b71Sopenharmony_ci 1909e41f4b71Sopenharmony_ci移除下载的任务,异步方法,使用promise形式返回结果。 1910e41f4b71Sopenharmony_ci 1911e41f4b71Sopenharmony_ci> **说明:** 1912e41f4b71Sopenharmony_ci> 1913e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9-2)替代。 1914e41f4b71Sopenharmony_ci 1915e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1916e41f4b71Sopenharmony_ci 1917e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1918e41f4b71Sopenharmony_ci 1919e41f4b71Sopenharmony_ci**返回值:** 1920e41f4b71Sopenharmony_ci 1921e41f4b71Sopenharmony_ci | 类型 | 说明 | 1922e41f4b71Sopenharmony_ci | -------- | -------- | 1923e41f4b71Sopenharmony_ci | Promise<boolean> | 使用promise方式异步回调,返回true表示移除下载任务成功;返回false表示移除下载任务失败。 | 1924e41f4b71Sopenharmony_ci 1925e41f4b71Sopenharmony_ci**错误码:** 1926e41f4b71Sopenharmony_ci 1927e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 1928e41f4b71Sopenharmony_ci 1929e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1930e41f4b71Sopenharmony_ci | -------- | -------- | 1931e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1932e41f4b71Sopenharmony_ci 1933e41f4b71Sopenharmony_ci**示例:** 1934e41f4b71Sopenharmony_ci 1935e41f4b71Sopenharmony_ci ```js 1936e41f4b71Sopenharmony_ci downloadTask.remove().then((result) => { 1937e41f4b71Sopenharmony_ci console.info('Succeeded in removing the download task.'); 1938e41f4b71Sopenharmony_ci }).catch ((err) => { 1939e41f4b71Sopenharmony_ci console.error(`Failed to remove the download task. Code: ${err.code}, message: ${err.message}`); 1940e41f4b71Sopenharmony_ci }); 1941e41f4b71Sopenharmony_ci ``` 1942e41f4b71Sopenharmony_ci 1943e41f4b71Sopenharmony_ci 1944e41f4b71Sopenharmony_ci### remove<sup>(deprecated)</sup> 1945e41f4b71Sopenharmony_ci 1946e41f4b71Sopenharmony_ciremove(callback: AsyncCallback<boolean>): void 1947e41f4b71Sopenharmony_ci 1948e41f4b71Sopenharmony_ci移除下载的任务,异步方法,使用callback形式返回结果。 1949e41f4b71Sopenharmony_ci 1950e41f4b71Sopenharmony_ci> **说明:** 1951e41f4b71Sopenharmony_ci> 1952e41f4b71Sopenharmony_ci> 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9-3)替代。 1953e41f4b71Sopenharmony_ci 1954e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1955e41f4b71Sopenharmony_ci 1956e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1957e41f4b71Sopenharmony_ci 1958e41f4b71Sopenharmony_ci**参数:** 1959e41f4b71Sopenharmony_ci 1960e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 1961e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 1962e41f4b71Sopenharmony_ci | callback | AsyncCallback<boolean> | 是 | 回调函数。返回true表示移除下载任务成功;返回false表示移除下载任务失败。 | 1963e41f4b71Sopenharmony_ci 1964e41f4b71Sopenharmony_ci**错误码:** 1965e41f4b71Sopenharmony_ci 1966e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 1967e41f4b71Sopenharmony_ci 1968e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 1969e41f4b71Sopenharmony_ci | -------- | -------- | 1970e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 1971e41f4b71Sopenharmony_ci 1972e41f4b71Sopenharmony_ci**示例:** 1973e41f4b71Sopenharmony_ci 1974e41f4b71Sopenharmony_ci ```js 1975e41f4b71Sopenharmony_ci downloadTask.remove((err, result)=>{ 1976e41f4b71Sopenharmony_ci if(err) { 1977e41f4b71Sopenharmony_ci console.error(`Failed to remove the download task. Code: ${err.code}, message: ${err.message}`); 1978e41f4b71Sopenharmony_ci return; 1979e41f4b71Sopenharmony_ci } 1980e41f4b71Sopenharmony_ci console.info('Succeeded in removing the download task.'); 1981e41f4b71Sopenharmony_ci }); 1982e41f4b71Sopenharmony_ci ``` 1983e41f4b71Sopenharmony_ci 1984e41f4b71Sopenharmony_ci 1985e41f4b71Sopenharmony_ci### query<sup>(deprecated)</sup> 1986e41f4b71Sopenharmony_ci 1987e41f4b71Sopenharmony_ciquery(): Promise<DownloadInfo> 1988e41f4b71Sopenharmony_ci 1989e41f4b71Sopenharmony_ci查询下载任务,异步方法,使用promise形式返回DownloadInfo里的信息。 1990e41f4b71Sopenharmony_ci 1991e41f4b71Sopenharmony_ci> **说明:** 1992e41f4b71Sopenharmony_ci> 1993e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskInfo<sup>9+</sup>](#gettaskinfo9)替代。 1994e41f4b71Sopenharmony_ci 1995e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 1996e41f4b71Sopenharmony_ci 1997e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 1998e41f4b71Sopenharmony_ci 1999e41f4b71Sopenharmony_ci**返回值:** 2000e41f4b71Sopenharmony_ci 2001e41f4b71Sopenharmony_ci | 类型 | 说明 | 2002e41f4b71Sopenharmony_ci | -------- | -------- | 2003e41f4b71Sopenharmony_ci | Promise<[DownloadInfo](#downloadinfo7)> | 使用promise方式,异步返回下载任务信息DownloadInfo的Promise对象。 | 2004e41f4b71Sopenharmony_ci 2005e41f4b71Sopenharmony_ci**错误码:** 2006e41f4b71Sopenharmony_ci 2007e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2008e41f4b71Sopenharmony_ci 2009e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2010e41f4b71Sopenharmony_ci | -------- | -------- | 2011e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2012e41f4b71Sopenharmony_ci 2013e41f4b71Sopenharmony_ci**示例:** 2014e41f4b71Sopenharmony_ci 2015e41f4b71Sopenharmony_ci ```js 2016e41f4b71Sopenharmony_ci downloadTask.query().then((downloadInfo) => { 2017e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download task.') 2018e41f4b71Sopenharmony_ci }) .catch((err) => { 2019e41f4b71Sopenharmony_ci console.error(`Failed to query the download task. Code: ${err.code}, message: ${err.message}`) 2020e41f4b71Sopenharmony_ci }); 2021e41f4b71Sopenharmony_ci ``` 2022e41f4b71Sopenharmony_ci 2023e41f4b71Sopenharmony_ci 2024e41f4b71Sopenharmony_ci### query<sup>(deprecated)</sup> 2025e41f4b71Sopenharmony_ci 2026e41f4b71Sopenharmony_ciquery(callback: AsyncCallback<DownloadInfo>): void 2027e41f4b71Sopenharmony_ci 2028e41f4b71Sopenharmony_ci查询下载的任务,异步方法,使用callback形式返回结果。 2029e41f4b71Sopenharmony_ci 2030e41f4b71Sopenharmony_ci> **说明:** 2031e41f4b71Sopenharmony_ci> 2032e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskInfo<sup>9+</sup>](#gettaskinfo9-1)替代。 2033e41f4b71Sopenharmony_ci 2034e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2035e41f4b71Sopenharmony_ci 2036e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2037e41f4b71Sopenharmony_ci 2038e41f4b71Sopenharmony_ci**参数:** 2039e41f4b71Sopenharmony_ci 2040e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2041e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2042e41f4b71Sopenharmony_ci | callback | AsyncCallback<[DownloadInfo](#downloadinfo7)> | 是 | 回调函数。当查询下载任务成功,err为undefined,data为获取到的DownloadInfo对象;否则为错误对象。 | 2043e41f4b71Sopenharmony_ci 2044e41f4b71Sopenharmony_ci**错误码:** 2045e41f4b71Sopenharmony_ci 2046e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2047e41f4b71Sopenharmony_ci 2048e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2049e41f4b71Sopenharmony_ci | -------- | -------- | 2050e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2051e41f4b71Sopenharmony_ci 2052e41f4b71Sopenharmony_ci**示例:** 2053e41f4b71Sopenharmony_ci 2054e41f4b71Sopenharmony_ci ```js 2055e41f4b71Sopenharmony_ci downloadTask.query((err, downloadInfo)=>{ 2056e41f4b71Sopenharmony_ci if(err) { 2057e41f4b71Sopenharmony_ci console.error(`Failed to query the download mimeType. Code: ${err.code}, message: ${err.message}`); 2058e41f4b71Sopenharmony_ci } else { 2059e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download task.'); 2060e41f4b71Sopenharmony_ci } 2061e41f4b71Sopenharmony_ci }); 2062e41f4b71Sopenharmony_ci ``` 2063e41f4b71Sopenharmony_ci 2064e41f4b71Sopenharmony_ci 2065e41f4b71Sopenharmony_ci### queryMimeType<sup>(deprecated)</sup> 2066e41f4b71Sopenharmony_ci 2067e41f4b71Sopenharmony_ciqueryMimeType(): Promise<string> 2068e41f4b71Sopenharmony_ci 2069e41f4b71Sopenharmony_ci查询下载的任务的MimeType,异步方法,使用promise形式返回结果。 2070e41f4b71Sopenharmony_ci 2071e41f4b71Sopenharmony_ci> **说明:** 2072e41f4b71Sopenharmony_ci> 2073e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskMimeType<sup>9+</sup>](#gettaskmimetype9)替代。 2074e41f4b71Sopenharmony_ci 2075e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2076e41f4b71Sopenharmony_ci 2077e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ci**返回值:** 2080e41f4b71Sopenharmony_ci 2081e41f4b71Sopenharmony_ci | 类型 | 说明 | 2082e41f4b71Sopenharmony_ci | -------- | -------- | 2083e41f4b71Sopenharmony_ci | Promise<string> | 使用promise方式,异步返回下载任务的MimeType的Promise对象。 | 2084e41f4b71Sopenharmony_ci 2085e41f4b71Sopenharmony_ci**错误码:** 2086e41f4b71Sopenharmony_ci 2087e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2088e41f4b71Sopenharmony_ci 2089e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2090e41f4b71Sopenharmony_ci | -------- | -------- | 2091e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2092e41f4b71Sopenharmony_ci 2093e41f4b71Sopenharmony_ci**示例:** 2094e41f4b71Sopenharmony_ci 2095e41f4b71Sopenharmony_ci ```js 2096e41f4b71Sopenharmony_ci downloadTask.queryMimeType().then((data) => { 2097e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download MimeType.'); 2098e41f4b71Sopenharmony_ci }).catch((err) => { 2099e41f4b71Sopenharmony_ci console.error(`Failed to query the download MimeType. Code: ${err.code}, message: ${err.message}`) 2100e41f4b71Sopenharmony_ci }); 2101e41f4b71Sopenharmony_ci ``` 2102e41f4b71Sopenharmony_ci 2103e41f4b71Sopenharmony_ci 2104e41f4b71Sopenharmony_ci### queryMimeType<sup>(deprecated)</sup> 2105e41f4b71Sopenharmony_ci 2106e41f4b71Sopenharmony_ciqueryMimeType(callback: AsyncCallback<string>): void; 2107e41f4b71Sopenharmony_ci 2108e41f4b71Sopenharmony_ci查询下载的任务的MimeType,异步方法,使用callback形式返回结果。 2109e41f4b71Sopenharmony_ci 2110e41f4b71Sopenharmony_ci> **说明:** 2111e41f4b71Sopenharmony_ci> 2112e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskMimeType<sup>9+</sup>](#gettaskmimetype9-1)替代。 2113e41f4b71Sopenharmony_ci 2114e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2115e41f4b71Sopenharmony_ci 2116e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2117e41f4b71Sopenharmony_ci 2118e41f4b71Sopenharmony_ci**参数:** 2119e41f4b71Sopenharmony_ci 2120e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2121e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2122e41f4b71Sopenharmony_ci | callback | AsyncCallback<string> | 是 | 回调函数。当查询下载任务的MimeType成功,err为undefined,data为获取到的任务MimeType对象;否则为错误对象。 | 2123e41f4b71Sopenharmony_ci 2124e41f4b71Sopenharmony_ci**错误码:** 2125e41f4b71Sopenharmony_ci 2126e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2127e41f4b71Sopenharmony_ci 2128e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2129e41f4b71Sopenharmony_ci | -------- | -------- | 2130e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2131e41f4b71Sopenharmony_ci 2132e41f4b71Sopenharmony_ci**示例:** 2133e41f4b71Sopenharmony_ci 2134e41f4b71Sopenharmony_ci ```js 2135e41f4b71Sopenharmony_ci downloadTask.queryMimeType((err, data)=>{ 2136e41f4b71Sopenharmony_ci if(err) { 2137e41f4b71Sopenharmony_ci console.error(`Failed to query the download mimeType. Code: ${err.code}, message: ${err.message}`); 2138e41f4b71Sopenharmony_ci } else { 2139e41f4b71Sopenharmony_ci console.info('Succeeded in querying the download mimeType.'); 2140e41f4b71Sopenharmony_ci } 2141e41f4b71Sopenharmony_ci }); 2142e41f4b71Sopenharmony_ci ``` 2143e41f4b71Sopenharmony_ci 2144e41f4b71Sopenharmony_ci 2145e41f4b71Sopenharmony_ci### pause<sup>(deprecated)</sup> 2146e41f4b71Sopenharmony_ci 2147e41f4b71Sopenharmony_cipause(): Promise<void> 2148e41f4b71Sopenharmony_ci 2149e41f4b71Sopenharmony_ci暂停下载任务,异步方法,使用promise形式返回结果。 2150e41f4b71Sopenharmony_ci 2151e41f4b71Sopenharmony_ci> **说明:** 2152e41f4b71Sopenharmony_ci> 2153e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[suspend<sup>9+</sup>](#suspend9)替代。 2154e41f4b71Sopenharmony_ci 2155e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2156e41f4b71Sopenharmony_ci 2157e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2158e41f4b71Sopenharmony_ci 2159e41f4b71Sopenharmony_ci**返回值:** 2160e41f4b71Sopenharmony_ci 2161e41f4b71Sopenharmony_ci | 类型 | 说明 | 2162e41f4b71Sopenharmony_ci | -------- | -------- | 2163e41f4b71Sopenharmony_ci | Promise<void> | Promise对象。无返回结果的Promise对象。 | 2164e41f4b71Sopenharmony_ci 2165e41f4b71Sopenharmony_ci**错误码:** 2166e41f4b71Sopenharmony_ci 2167e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2168e41f4b71Sopenharmony_ci 2169e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2170e41f4b71Sopenharmony_ci | -------- | -------- | 2171e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2172e41f4b71Sopenharmony_ci 2173e41f4b71Sopenharmony_ci**示例:** 2174e41f4b71Sopenharmony_ci 2175e41f4b71Sopenharmony_ci ```js 2176e41f4b71Sopenharmony_ci downloadTask.pause().then((result) => { 2177e41f4b71Sopenharmony_ci console.info('Succeeded in pausing the download task.'); 2178e41f4b71Sopenharmony_ci }).catch((err) => { 2179e41f4b71Sopenharmony_ci console.error(`Failed to pause the download task. Code: ${err.code}, message: ${err.message}`); 2180e41f4b71Sopenharmony_ci }); 2181e41f4b71Sopenharmony_ci ``` 2182e41f4b71Sopenharmony_ci 2183e41f4b71Sopenharmony_ci 2184e41f4b71Sopenharmony_ci### pause<sup>(deprecated)</sup> 2185e41f4b71Sopenharmony_ci 2186e41f4b71Sopenharmony_cipause(callback: AsyncCallback<void>): void 2187e41f4b71Sopenharmony_ci 2188e41f4b71Sopenharmony_ci> **说明:** 2189e41f4b71Sopenharmony_ci> 2190e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[suspend<sup>9+</sup>](#suspend9-1)替代。 2191e41f4b71Sopenharmony_ci 2192e41f4b71Sopenharmony_ci暂停下载任务,异步方法,使用callback形式返回结果。 2193e41f4b71Sopenharmony_ci 2194e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2195e41f4b71Sopenharmony_ci 2196e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2197e41f4b71Sopenharmony_ci 2198e41f4b71Sopenharmony_ci**参数:** 2199e41f4b71Sopenharmony_ci 2200e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2201e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2202e41f4b71Sopenharmony_ci | callback | AsyncCallback<void> | 是 | 回调函数。当暂停下载任务成功,err为undefined,否则为错误对象。 | 2203e41f4b71Sopenharmony_ci 2204e41f4b71Sopenharmony_ci**错误码:** 2205e41f4b71Sopenharmony_ci 2206e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2207e41f4b71Sopenharmony_ci 2208e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2209e41f4b71Sopenharmony_ci | -------- | -------- | 2210e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2211e41f4b71Sopenharmony_ci 2212e41f4b71Sopenharmony_ci**示例:** 2213e41f4b71Sopenharmony_ci 2214e41f4b71Sopenharmony_ci ```js 2215e41f4b71Sopenharmony_ci downloadTask.pause((err, result)=>{ 2216e41f4b71Sopenharmony_ci if(err) { 2217e41f4b71Sopenharmony_ci console.error(`Failed to pause the download task. Code: ${err.code}, message: ${err.message}`); 2218e41f4b71Sopenharmony_ci return; 2219e41f4b71Sopenharmony_ci } 2220e41f4b71Sopenharmony_ci console.info('Succeeded in pausing the download task.'); 2221e41f4b71Sopenharmony_ci }); 2222e41f4b71Sopenharmony_ci ``` 2223e41f4b71Sopenharmony_ci 2224e41f4b71Sopenharmony_ci 2225e41f4b71Sopenharmony_ci### resume<sup>(deprecated)</sup> 2226e41f4b71Sopenharmony_ci 2227e41f4b71Sopenharmony_ciresume(): Promise<void> 2228e41f4b71Sopenharmony_ci 2229e41f4b71Sopenharmony_ci重新启动暂停的下载任务,异步方法,使用promise形式返回结果。 2230e41f4b71Sopenharmony_ci 2231e41f4b71Sopenharmony_ci> **说明:** 2232e41f4b71Sopenharmony_ci> 2233e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[restore<sup>9+</sup>](#restore9)替代。 2234e41f4b71Sopenharmony_ci 2235e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2236e41f4b71Sopenharmony_ci 2237e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2238e41f4b71Sopenharmony_ci 2239e41f4b71Sopenharmony_ci**返回值:** 2240e41f4b71Sopenharmony_ci 2241e41f4b71Sopenharmony_ci | 类型 | 说明 | 2242e41f4b71Sopenharmony_ci | -------- | -------- | 2243e41f4b71Sopenharmony_ci | Promise<void> | Promise对象。无返回结果的Promise对象。 | 2244e41f4b71Sopenharmony_ci 2245e41f4b71Sopenharmony_ci**错误码:** 2246e41f4b71Sopenharmony_ci 2247e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2248e41f4b71Sopenharmony_ci 2249e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2250e41f4b71Sopenharmony_ci | -------- | -------- | 2251e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2252e41f4b71Sopenharmony_ci 2253e41f4b71Sopenharmony_ci**示例:** 2254e41f4b71Sopenharmony_ci 2255e41f4b71Sopenharmony_ci ```js 2256e41f4b71Sopenharmony_ci downloadTask.resume().then((result) => { 2257e41f4b71Sopenharmony_ci console.info('Succeeded in resuming the download task.') 2258e41f4b71Sopenharmony_ci }).catch((err) => { 2259e41f4b71Sopenharmony_ci console.error(`Failed to resume the download task. Code: ${err.code}, message: ${err.message}`); 2260e41f4b71Sopenharmony_ci }); 2261e41f4b71Sopenharmony_ci ``` 2262e41f4b71Sopenharmony_ci 2263e41f4b71Sopenharmony_ci 2264e41f4b71Sopenharmony_ci### resume<sup>(deprecated)</sup> 2265e41f4b71Sopenharmony_ci 2266e41f4b71Sopenharmony_ciresume(callback: AsyncCallback<void>): void 2267e41f4b71Sopenharmony_ci 2268e41f4b71Sopenharmony_ci> **说明:** 2269e41f4b71Sopenharmony_ci> 2270e41f4b71Sopenharmony_ci> 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[restore<sup>9+</sup>](#restore9-1)替代。 2271e41f4b71Sopenharmony_ci 2272e41f4b71Sopenharmony_ci重新启动暂停的下载任务,异步方法,使用callback形式返回结果。 2273e41f4b71Sopenharmony_ci 2274e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 2275e41f4b71Sopenharmony_ci 2276e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2277e41f4b71Sopenharmony_ci 2278e41f4b71Sopenharmony_ci**参数:** 2279e41f4b71Sopenharmony_ci 2280e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2281e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2282e41f4b71Sopenharmony_ci | callback | AsyncCallback<void> | 是 | 回调函数。当重新启动已暂停的下载任务成功,err为undefined,否则为错误对象。 | 2283e41f4b71Sopenharmony_ci 2284e41f4b71Sopenharmony_ci**错误码:** 2285e41f4b71Sopenharmony_ci 2286e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2287e41f4b71Sopenharmony_ci 2288e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2289e41f4b71Sopenharmony_ci | -------- | -------- | 2290e41f4b71Sopenharmony_ci | 201 | the permissions check fails | 2291e41f4b71Sopenharmony_ci 2292e41f4b71Sopenharmony_ci**示例:** 2293e41f4b71Sopenharmony_ci 2294e41f4b71Sopenharmony_ci ```js 2295e41f4b71Sopenharmony_ci downloadTask.resume((err, result)=>{ 2296e41f4b71Sopenharmony_ci if (err) { 2297e41f4b71Sopenharmony_ci console.error(`Failed to resume the download task. Code: ${err.code}, message: ${err.message}`); 2298e41f4b71Sopenharmony_ci return; 2299e41f4b71Sopenharmony_ci } 2300e41f4b71Sopenharmony_ci console.info('Succeeded in resuming the download task.'); 2301e41f4b71Sopenharmony_ci }); 2302e41f4b71Sopenharmony_ci ``` 2303e41f4b71Sopenharmony_ci 2304e41f4b71Sopenharmony_ci 2305e41f4b71Sopenharmony_ci## DownloadConfig 2306e41f4b71Sopenharmony_ci下载任务的配置信息。 2307e41f4b71Sopenharmony_ci 2308e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2309e41f4b71Sopenharmony_ci 2310e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2311e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2312e41f4b71Sopenharmony_ci| url | string | 是 | 资源地址,其最大长度为2048个字符。 | 2313e41f4b71Sopenharmony_ci| header | Object | 否 | 添加要包含在下载请求中的HTTPS标志头。| 2314e41f4b71Sopenharmony_ci| enableMetered | boolean | 否 | 设置是否允许在按流量计费的连接下下载(默认使用false)。Wi-Fi为非计费网络,数据流量为计费网络。<br/>- true:是<br/>- false:否 | 2315e41f4b71Sopenharmony_ci| enableRoaming | boolean | 否 | 设置是否允许在漫游网络中下载(默认使用false)。 <br/>- true:是<br/>- false:否| 2316e41f4b71Sopenharmony_ci| description | string | 否 | 设置下载会话的描述。 | 2317e41f4b71Sopenharmony_ci| filePath<sup>7+</sup> | string | 否 | 设置下载路径。默认为调用方(即传入的context)对应的缓存路径。默认文件名从url的最后一个"/"后截取。<br/>- FA模型下使用[context](../apis-ability-kit/js-apis-inner-app-context.md#contextgetcachedir) 获取应用存储路径。<br/>- Stage模型下使用[AbilityContext](../apis-ability-kit/js-apis-inner-application-context.md) 类获取文件路径。| 2318e41f4b71Sopenharmony_ci| networkType | number | 否 | 设置允许下载的网络类型(默认使用NETWORK_MOBILE&NETWORK_WIFI)。<br/>- NETWORK_MOBILE:0x00000001<br/>- NETWORK_WIFI:0x00010000| 2319e41f4b71Sopenharmony_ci| title | string | 否 | 设置下载任务名称。 | 2320e41f4b71Sopenharmony_ci| background<sup>9+</sup> | boolean | 否 | 后台任务通知开关,开启后可在通知中显示下载状态(默认使用false)。 | 2321e41f4b71Sopenharmony_ci 2322e41f4b71Sopenharmony_ci 2323e41f4b71Sopenharmony_ci## DownloadInfo<sup>7+</sup> 2324e41f4b71Sopenharmony_ci下载任务信息,[getTaskInfo<sup>9+</sup>](#gettaskinfo9)接口的回调参数。 2325e41f4b71Sopenharmony_ci 2326e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.MiscServices.Download 2327e41f4b71Sopenharmony_ci 2328e41f4b71Sopenharmony_ci| 名称 | 类型 |必填 | 说明 | 2329e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2330e41f4b71Sopenharmony_ci| downloadId | number |是 | 下载任务ID。 | 2331e41f4b71Sopenharmony_ci| failedReason | number|是 | 下载失败原因,可以是任何[下载任务的错误码](#下载任务的错误码)常量。 | 2332e41f4b71Sopenharmony_ci| fileName | string |是| 下载的文件名。 | 2333e41f4b71Sopenharmony_ci| filePath | string |是| 存储文件的URI。 | 2334e41f4b71Sopenharmony_ci| pausedReason | number |是| 会话暂停的原因,可以是任何[下载任务暂停原因](#下载任务暂停原因)常量。 | 2335e41f4b71Sopenharmony_ci| status | number |是| 下载状态码,可以是任何[下载任务状态码](#下载任务状态码)常量。 | 2336e41f4b71Sopenharmony_ci| targetURI | string |是| 下载文件的URI。 | 2337e41f4b71Sopenharmony_ci| downloadTitle | string |是| 下载任务名称。 | 2338e41f4b71Sopenharmony_ci| downloadTotalBytes | number |是| 下载的文件的总大小,单位为字节。 | 2339e41f4b71Sopenharmony_ci| description | string |是| 待下载任务的描述信息。 | 2340e41f4b71Sopenharmony_ci| downloadedBytes | number |是| 实时下载大小,单位为字节。 | 2341e41f4b71Sopenharmony_ci 2342e41f4b71Sopenharmony_ci## Action<sup>10+</sup> 2343e41f4b71Sopenharmony_ci 2344e41f4b71Sopenharmony_ci定义操作选项。 2345e41f4b71Sopenharmony_ci 2346e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2347e41f4b71Sopenharmony_ci 2348e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2349e41f4b71Sopenharmony_ci 2350e41f4b71Sopenharmony_ci| 名称 | 值 |说明 | 2351e41f4b71Sopenharmony_ci| -------- | -------- |-------- | 2352e41f4b71Sopenharmony_ci| DOWNLOAD | 0 |表示下载任务。 | 2353e41f4b71Sopenharmony_ci| UPLOAD | 1 |表示上传任务。 | 2354e41f4b71Sopenharmony_ci 2355e41f4b71Sopenharmony_ci 2356e41f4b71Sopenharmony_ci## Mode<sup>10+</sup> 2357e41f4b71Sopenharmony_ci定义模式选项。<br> 2358e41f4b71Sopenharmony_ci前端任务在应用切换到后台一段时间后失败/暂停;后台任务不受影响。 2359e41f4b71Sopenharmony_ci 2360e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2361e41f4b71Sopenharmony_ci 2362e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2363e41f4b71Sopenharmony_ci 2364e41f4b71Sopenharmony_ci| 名称 | 值 |说明 | 2365e41f4b71Sopenharmony_ci| -------- | -------- |-------- | 2366e41f4b71Sopenharmony_ci| BACKGROUND | 0 |表示后台任务。 | 2367e41f4b71Sopenharmony_ci| FOREGROUND | 1 |表示前端任务。 | 2368e41f4b71Sopenharmony_ci 2369e41f4b71Sopenharmony_ci## Network<sup>10+</sup> 2370e41f4b71Sopenharmony_ci 2371e41f4b71Sopenharmony_ci定义网络选项。<br> 2372e41f4b71Sopenharmony_ci网络不满足设置条件时,未执行的任务等待执行,执行中的任务失败/暂停。 2373e41f4b71Sopenharmony_ci 2374e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2375e41f4b71Sopenharmony_ci 2376e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2377e41f4b71Sopenharmony_ci 2378e41f4b71Sopenharmony_ci| 名称 | 值 |说明 | 2379e41f4b71Sopenharmony_ci| -------- | -------- |-------- | 2380e41f4b71Sopenharmony_ci| ANY | 0 |表示不限网络类型。 | 2381e41f4b71Sopenharmony_ci| WIFI | 1 |表示无线网络。 | 2382e41f4b71Sopenharmony_ci| CELLULAR | 2 |表示蜂窝数据网络。 | 2383e41f4b71Sopenharmony_ci 2384e41f4b71Sopenharmony_ci## BroadcastEvent<sup>11+</sup> 2385e41f4b71Sopenharmony_ci 2386e41f4b71Sopenharmony_ci定义自定义系统事件。用户可以使用公共事件接口获取该事件。 2387e41f4b71Sopenharmony_ci上传下载 SA 具有 'ohos.permission.SEND_TASK_COMPLETE_EVENT' 该权限,用户可以配置事件的 metadata 指向的二级配置文件来拦截其他事件发送者。 2388e41f4b71Sopenharmony_ci 2389e41f4b71Sopenharmony_ci使用 CommonEventData 类型传输公共事件相关数据。成员的内容填写和 [CommonEventData介绍](js-apis-inner-commonEvent-commonEventData.md) 介绍的有所区别,其中 CommonEventData.code 表示任务的状态,目前为 0x40 COMPLETE 或 0x41 FAILED; CommonEventData.data 表示任务的 taskId。 2390e41f4b71Sopenharmony_ci 2391e41f4b71Sopenharmony_ci<!--Del--> 2392e41f4b71Sopenharmony_ci事件配置信息请参考[静态订阅公共事件](../../basic-services/common-event/common-event-static-subscription.md)。<!--DelEnd--> 2393e41f4b71Sopenharmony_ci 2394e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2395e41f4b71Sopenharmony_ci 2396e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 2397e41f4b71Sopenharmony_ci| -------- | ------- |-----------| 2398e41f4b71Sopenharmony_ci| COMPLETE | 'ohos.request.event.COMPLETE' | 表示任务完成事件。 | 2399e41f4b71Sopenharmony_ci 2400e41f4b71Sopenharmony_ci## FileSpec<sup>10+</sup> 2401e41f4b71Sopenharmony_ci表单项的文件信息。 2402e41f4b71Sopenharmony_ci 2403e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2404e41f4b71Sopenharmony_ci 2405e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2406e41f4b71Sopenharmony_ci 2407e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2408e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2409e41f4b71Sopenharmony_ci| path | string | 是 | 文件路径:<br/>-相对路径,位于调用方的缓存路径下,如"./xxx/yyy/zzz.html"、"xxx/yyy/zzz.html"。<br/>-internal协议路径,支持"internal://"及其子路径,internal为调用方(即传入的context)对应路径,"internal://cache"对应context.cacheDir。如"internal://cache/path/to/file.txt"。<br/>-应用沙箱目录,只支持到base及其子目录下,如"/data/storage/el1/base/path/to/file.txt"。<br/>-file协议路径,必须匹配应用包名,只支持到base及其子目录下,如"file://com.example.test/data/storage/el2/base/file.txt"。<br/>-用户公共文件,如"file://media/Photo/path/to/file.img"。仅支持前端任务。 | 2410e41f4b71Sopenharmony_ci| mimeType | string | 否 | 文件的mimetype通过文件名获取。 | 2411e41f4b71Sopenharmony_ci| filename | string | 否 | 文件名,默认值通过路径获取。 | 2412e41f4b71Sopenharmony_ci| extras | object | 否 | 文件信息的附加内容。 | 2413e41f4b71Sopenharmony_ci 2414e41f4b71Sopenharmony_ci 2415e41f4b71Sopenharmony_ci## FormItem<sup>10+</sup> 2416e41f4b71Sopenharmony_ci任务的表单项信息。 2417e41f4b71Sopenharmony_ci 2418e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2419e41f4b71Sopenharmony_ci 2420e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2421e41f4b71Sopenharmony_ci 2422e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2423e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2424e41f4b71Sopenharmony_ci| name | string | 是 | 表单参数名。 | 2425e41f4b71Sopenharmony_ci| value | string \| [FileSpec](#filespec10) \| Array<[FileSpec](#filespec10)> | 是 | 表单参数值。 | 2426e41f4b71Sopenharmony_ci 2427e41f4b71Sopenharmony_ci 2428e41f4b71Sopenharmony_ci## Config<sup>10+</sup> 2429e41f4b71Sopenharmony_ci上传/下载任务的配置信息。 2430e41f4b71Sopenharmony_ci 2431e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2432e41f4b71Sopenharmony_ci 2433e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2434e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2435e41f4b71Sopenharmony_ci| action | [Action](#action10) | 是 | 任务操作选项。<br/>-UPLOAD表示上传任务。<br/>-DOWNLOAD表示下载任务。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2436e41f4b71Sopenharmony_ci| url | string | 是 | 资源地址,其最大长度为2048个字符。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2437e41f4b71Sopenharmony_ci| title | string | 否 | 任务标题,其最大长度为256个字符,默认值为小写的 upload 或 download,与上面的 action 保持一致。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2438e41f4b71Sopenharmony_ci| description | string | 否 | 任务的详细信息,其最大长度为1024个字符,默认值为空字符串。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2439e41f4b71Sopenharmony_ci| mode | [Mode](#mode10) | 否 | 任务模式,默认为后台任务。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2440e41f4b71Sopenharmony_ci| overwrite | boolean | 否 | 下载过程中路径已存在时的解决方案选择,默认为false。<br/>- true,覆盖已存在的文件。<br/>- false,下载失败。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2441e41f4b71Sopenharmony_ci| method | string | 否 | 上传或下载的HTTP标准方法,包括GET、POST和PUT,不区分大小写。<br/>-上传时,使用PUT或POST,默认值为PUT。<br/>-下载时,使用GET或POST,默认值为GET。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2442e41f4b71Sopenharmony_ci| headers | object | 否 | 添加要包含在任务中的HTTP协议标志头。<br/>-对于上传请求,默认的Content-Type为"multipart/form-data"。<br/>-对于下载请求,默认的Content-Type为"application/json"。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2443e41f4b71Sopenharmony_ci| data | string \| Array<[FormItem](#formitem10)> | 否 | -下载时,data为字符串类型,通常使用json(object将被转换为json文本),默认为空。<br/>-上传时,data是表单项数组Array<[FormItem](#formitem10)>,默认为空。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2444e41f4b71Sopenharmony_ci| saveas | string | 否 | 保存下载文件的路径,包括如下几种:<br/>-相对路径,位于调用方的缓存路径下,如"./xxx/yyy/zzz.html"、"xxx/yyy/zzz.html"。<br/>-internal协议路径,支持"internal://"及其子路径,internal为调用方(即传入的context)对应路径,"internal://cache"对应context.cacheDir。如"internal://cache/path/to/file.txt"。<br/>-应用沙箱目录,只支持到base及其子目录下,如"/data/storage/el1/base/path/to/file.txt"。<br/>-file协议路径,必须匹配应用包名,只支持到base及其子目录下,如"file://com.example.test/data/storage/el2/base/file.txt"。<br/>默认为调用方(即传入的context)对应的缓存路径。默认文件名从url的最后一个"/"后截取。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2445e41f4b71Sopenharmony_ci| network | [Network](#network10) | 否 | 网络选项,当前支持无线网络WIFI和蜂窝数据网络CELLULAR,默认为ANY(WIFI或CELLULAR)。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2446e41f4b71Sopenharmony_ci| metered | boolean | 否 | 是否允许在按流量计费的网络中工作,默认为false。<br/>-true:是 <br/>-false:否<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2447e41f4b71Sopenharmony_ci| roaming | boolean | 否 | 是否允许在漫游网络中工作,默认为true。<br/>-true:是 <br/>-false:否<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2448e41f4b71Sopenharmony_ci| retry | boolean | 否 | 是否为后台任务启用自动重试,仅应用于后台任务,默认为true。<br/>-true:是 <br/>-false:否<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2449e41f4b71Sopenharmony_ci| redirect | boolean | 否 | 是否允许重定向,默认为true。<br/>-true:是 <br/>-false:否<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2450e41f4b71Sopenharmony_ci| proxy<sup>12+</sup> | string | 否 | 设置代理地址,其最大长度为512个字符,默认为空。<br/>代理地址格式:"http://\<domain or address\>:\<port\>" | 2451e41f4b71Sopenharmony_ci| index | number | 否 | 任务的路径索引,通常用于任务断点续传,默认为0。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2452e41f4b71Sopenharmony_ci| begins | number | 否 | 文件起点,通常用于断点续传。默认值为0,取值为闭区间。<br/>-下载时,请求读取服务器开始下载文件时的起点位置(http协议中设置"Range"选项)。<br/>-上传时,在上传开始时读取。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2453e41f4b71Sopenharmony_ci| ends | number | 否 | 文件终点,通常用于断点续传。默认值为-1,取值为闭区间。<br/>-下载时,请求读取服务器开始下载文件时的结束位置(http协议中设置"Range"选项)。<br/>-上传时,在上传时结束读取。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2454e41f4b71Sopenharmony_ci| gauge | boolean | 否 | 后台任务的过程进度通知策略,仅应用于后台任务,默认值为false。<br/>-false:代表仅完成或失败的通知。<br/>-true,发出每个进度已完成或失败的通知。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2455e41f4b71Sopenharmony_ci| precise | boolean | 否 | -如果设置为true,在上传/下载无法获取文件大小时任务失败。<br/>-如果设置为false,将文件大小设置为-1时任务继续。<br/>默认值为false。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2456e41f4b71Sopenharmony_ci| token | string | 否 | 当创建了一个带有token的任务后,token则为正常查询期间必须提供的,否则将无法通过查询进行检索。其最小为8个字节,最大为2048个字节。默认为空。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2457e41f4b71Sopenharmony_ci| priority<sup>11+</sup> | number | 否 | 任务的优先级。任务模式相同的情况下,该配置项的数字越小优先级越高,默认值为0。 | 2458e41f4b71Sopenharmony_ci| extras | object | 否 | 配置的附加功能,默认为空。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 2459e41f4b71Sopenharmony_ci 2460e41f4b71Sopenharmony_ci## State<sup>10+</sup> 2461e41f4b71Sopenharmony_ci 2462e41f4b71Sopenharmony_ci定义任务当前的状态。 2463e41f4b71Sopenharmony_ci 2464e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2465e41f4b71Sopenharmony_ci 2466e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2467e41f4b71Sopenharmony_ci 2468e41f4b71Sopenharmony_ci| 名称 | 值 |说明 | 2469e41f4b71Sopenharmony_ci| -------- | -------- |-------- | 2470e41f4b71Sopenharmony_ci| INITIALIZED | 0x00 |通过配置信息([Config](#config10))创建初始化任务。 | 2471e41f4b71Sopenharmony_ci| WAITING | 0x10 |表示任务缺少运行或重试的资源与网络状态不匹配。 | 2472e41f4b71Sopenharmony_ci| RUNNING | 0x20 |表示正在处理的任务。 | 2473e41f4b71Sopenharmony_ci| RETRYING | 0x21 |表示任务至少失败一次,现在正在再次处理中。 | 2474e41f4b71Sopenharmony_ci| PAUSED | 0x30 |表示任务暂停,通常后续会恢复任务。 | 2475e41f4b71Sopenharmony_ci| STOPPED | 0x31 |表示任务停止。 | 2476e41f4b71Sopenharmony_ci| COMPLETED | 0x40 |表示任务完成。 | 2477e41f4b71Sopenharmony_ci| FAILED | 0x41 |表示任务失败。 | 2478e41f4b71Sopenharmony_ci| REMOVED | 0x50 |表示任务移除。 | 2479e41f4b71Sopenharmony_ci 2480e41f4b71Sopenharmony_ci 2481e41f4b71Sopenharmony_ci## Progress<sup>10+</sup> 2482e41f4b71Sopenharmony_ci任务进度的数据结构。 2483e41f4b71Sopenharmony_ci 2484e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2485e41f4b71Sopenharmony_ci 2486e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2487e41f4b71Sopenharmony_ci 2488e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2489e41f4b71Sopenharmony_ci| -------- | -------- | -------- |---------------------------------------------------------------------| 2490e41f4b71Sopenharmony_ci| state | [State](#state10) | 是 | 任务当前的状态。 | 2491e41f4b71Sopenharmony_ci| index | number | 是 | 任务中当前正在处理的文件索引。 | 2492e41f4b71Sopenharmony_ci| processed | number | 是 | 任务中当前文件的已处理数据大小,单位为字节。 | 2493e41f4b71Sopenharmony_ci| sizes | Array<number> | 是 | 任务中文件的大小,单位为字节。在下载过程中,若服务器使用 chunk 方式传输导致无法从请求头中获取文件总大小时,sizes 为 -1。 | 2494e41f4b71Sopenharmony_ci| extras | object | 否 | 交互的额外内容,例如来自服务器的响应的header和body。 | 2495e41f4b71Sopenharmony_ci 2496e41f4b71Sopenharmony_ci 2497e41f4b71Sopenharmony_ci## Faults<sup>10+</sup> 2498e41f4b71Sopenharmony_ci 2499e41f4b71Sopenharmony_ci定义任务失败的原因。 2500e41f4b71Sopenharmony_ci 2501e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2502e41f4b71Sopenharmony_ci 2503e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2504e41f4b71Sopenharmony_ci 2505e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 2506e41f4b71Sopenharmony_ci| -------- | -------- |--------------------------------------------------------------------------------| 2507e41f4b71Sopenharmony_ci| OTHERS | 0xFF | 表示其他故障。 | 2508e41f4b71Sopenharmony_ci| DISCONNECTED | 0x00 | 表示网络断开连接。 | 2509e41f4b71Sopenharmony_ci| TIMEOUT | 0x10 | 表示任务超时。 | 2510e41f4b71Sopenharmony_ci| PROTOCOL | 0x20 | 表示协议错误,例如:服务器内部错误(500)、无法处理的数据区间(416)等。 | 2511e41f4b71Sopenharmony_ci| PARAM<sup>12+</sup> | 0x30 | 表示参数错误,例如url格式错误等。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2512e41f4b71Sopenharmony_ci| FSIO | 0x40 | 表示文件系统io错误,例如打开/查找/读取/写入/关闭。 | 2513e41f4b71Sopenharmony_ci| DNS<sup>12+</sup> | 0x50 | 表示DNS解析错误。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2514e41f4b71Sopenharmony_ci| TCP<sup>12+</sup> | 0x60 | 表示TCP连接错误。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2515e41f4b71Sopenharmony_ci| SSL<sup>12+</sup> | 0x70 | 表示SSL连接错误,例如证书错误、证书校验失败错误等。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2516e41f4b71Sopenharmony_ci| REDIRECT<sup>12+</sup> | 0x80 | 表示重定向错误。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 2517e41f4b71Sopenharmony_ci 2518e41f4b71Sopenharmony_ci> **说明:** 2519e41f4b71Sopenharmony_ci> 2520e41f4b71Sopenharmony_ci> API version 12及以下版本,只支持串行的尝试连接域名相关ip,且不支持单个ip的连接时间控制,如果DNS返回的首个ip是阻塞的,可能握手超时造成TIMEOUT错误。 2521e41f4b71Sopenharmony_ci 2522e41f4b71Sopenharmony_ci## Filter<sup>10+</sup> 2523e41f4b71Sopenharmony_ci过滤条件。 2524e41f4b71Sopenharmony_ci 2525e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2526e41f4b71Sopenharmony_ci 2527e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2528e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2529e41f4b71Sopenharmony_ci| before | number | 否 | 结束的Unix时间戳(毫秒),默认为调用时刻。 | 2530e41f4b71Sopenharmony_ci| after | number | 否 | 开始的Unix时间戳(毫秒),默认值为调用时刻减24小时。 | 2531e41f4b71Sopenharmony_ci| state | [State](#state10) | 否 | 指定任务的状态。 | 2532e41f4b71Sopenharmony_ci| action | [Action](#action10) | 否 | 任务操作选项。<br/>-UPLOAD表示上传任务。<br/>-DOWNLOAD表示下载任务。 | 2533e41f4b71Sopenharmony_ci| mode | [Mode](#mode10) | 否 | 任务模式。<br/>-FOREGROUND表示前端任务。<br/>-BACKGROUND表示后台任务。<br/>-如果未填写,则查询所有任务。 | 2534e41f4b71Sopenharmony_ci 2535e41f4b71Sopenharmony_ci## TaskInfo<sup>10+</sup> 2536e41f4b71Sopenharmony_ci查询结果的任务信息数据结构,提供普通查询和系统查询,两种字段的可见范围不同。 2537e41f4b71Sopenharmony_ci 2538e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2539e41f4b71Sopenharmony_ci 2540e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2541e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2542e41f4b71Sopenharmony_ci| saveas | string | 否 | 保存下载文件的路径。 | 2543e41f4b71Sopenharmony_ci| url | string | 否 | 任务的url。<br/>- 通过[request.agent.show<sup>10+</sup>](#requestagentshow10-1)、[request.agent.touch<sup>10+</sup>](#requestagenttouch10-1)进行查询。 | 2544e41f4b71Sopenharmony_ci| data | string \| Array<[FormItem](#formitem10)> | 否 | 任务值。<br/>- 通过[request.agent.show<sup>10+</sup>](#requestagentshow10-1)、[request.agent.touch<sup>10+</sup>](#requestagenttouch10-1)。 | 2545e41f4b71Sopenharmony_ci| tid | string | 是 | 任务id。 | 2546e41f4b71Sopenharmony_ci| title | string | 是 | 任务标题。 | 2547e41f4b71Sopenharmony_ci| description | string | 是 | 任务描述。 | 2548e41f4b71Sopenharmony_ci| action | [Action](#action10) | 是 | 任务操作选项。<br/>-UPLOAD表示上传任务。<br/>-DOWNLOAD表示下载任务。 | 2549e41f4b71Sopenharmony_ci| mode | [Mode](#mode10) | 是 | 指定任务模式。<br/>-FOREGROUND表示前端任务。<br/>-BACKGROUND表示后台任务。 | 2550e41f4b71Sopenharmony_ci| priority<sup>11+</sup> | number | 是 | 任务配置中的优先级。前端任务的优先级比后台任务高。相同模式的任务,数字越小优先级越高。 | 2551e41f4b71Sopenharmony_ci| mimeType | string | 是 | 任务配置中的mimetype。 | 2552e41f4b71Sopenharmony_ci| progress | [Progress](#progress10) | 是 | 任务的过程进度。 | 2553e41f4b71Sopenharmony_ci| gauge | boolean | 是 | 后台任务的进度通知策略。 | 2554e41f4b71Sopenharmony_ci| ctime | number | 是 | 创建任务的Unix时间戳(毫秒),由当前设备的系统生成。<br/>说明:使用[request.agent.search<sup>10+</sup>](#requestagentsearch10-1)进行查询时,该值需处于[after,before]区间内才可正常查询到任务id,before和after信息详见[Filter](#filter10)。 2555e41f4b71Sopenharmony_ci| mtime | number | 是 | 任务状态改变时的Unix时间戳(毫秒),由当前设备的系统生成。| 2556e41f4b71Sopenharmony_ci| retry | boolean | 是 | 任务的重试开关,仅应用于后台任务。 | 2557e41f4b71Sopenharmony_ci| tries | number | 是 | 任务的尝试次数。 | 2558e41f4b71Sopenharmony_ci| faults | [Faults](#faults10) | 是 | 任务的失败原因。| 2559e41f4b71Sopenharmony_ci| reason | string | 是 | 等待/失败/停止/暂停任务的原因。| 2560e41f4b71Sopenharmony_ci| extras | object | 否 | 任务的额外部分。| 2561e41f4b71Sopenharmony_ci 2562e41f4b71Sopenharmony_ci 2563e41f4b71Sopenharmony_ci## HttpResponse<sup>12+</sup> 2564e41f4b71Sopenharmony_ci任务响应头的数据结构。 2565e41f4b71Sopenharmony_ci 2566e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2567e41f4b71Sopenharmony_ci 2568e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2569e41f4b71Sopenharmony_ci 2570e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2571e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2572e41f4b71Sopenharmony_ci| version | string | 是 | Http版本。 | 2573e41f4b71Sopenharmony_ci| statusCode | number | 是 | Http响应状态码。 | 2574e41f4b71Sopenharmony_ci| reason | string | 是 | Http响应原因。| 2575e41f4b71Sopenharmony_ci| headers | Map<string, Array<string>> | 是 | Http响应头部。 | 2576e41f4b71Sopenharmony_ci 2577e41f4b71Sopenharmony_ci## Task<sup>10+</sup> 2578e41f4b71Sopenharmony_ci上传或下载任务。使用该方法前需要先获取Task对象,promise形式通过[request.agent.create<sup>10+</sup>](#requestagentcreate10-1)获取,callback形式通过[request.agent.create<sup>10+</sup>](#requestagentcreate10)获取。 2579e41f4b71Sopenharmony_ci 2580e41f4b71Sopenharmony_ci### 属性 2581e41f4b71Sopenharmony_ci包括任务id和任务的配置信息。 2582e41f4b71Sopenharmony_ci 2583e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2584e41f4b71Sopenharmony_ci 2585e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2586e41f4b71Sopenharmony_ci 2587e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2588e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | 2589e41f4b71Sopenharmony_ci| tid | string | 是 | 任务id,在系统上是唯一的,由系统自动生成。 | 2590e41f4b71Sopenharmony_ci| config | [Config](#config10) | 是 | 任务的配置信息。 | 2591e41f4b71Sopenharmony_ci 2592e41f4b71Sopenharmony_ci 2593e41f4b71Sopenharmony_ci### on('progress')<sup>10+</sup> 2594e41f4b71Sopenharmony_ci 2595e41f4b71Sopenharmony_cion(event: 'progress', callback: (progress: [Progress](#progress10)) => void): void 2596e41f4b71Sopenharmony_ci 2597e41f4b71Sopenharmony_ci订阅任务进度的事件,异步方法,使用callback形式返回结果。 2598e41f4b71Sopenharmony_ci 2599e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2600e41f4b71Sopenharmony_ci 2601e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2602e41f4b71Sopenharmony_ci 2603e41f4b71Sopenharmony_ci**参数:** 2604e41f4b71Sopenharmony_ci 2605e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2606e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2607e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'progress',表示任务进度。 | 2608e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务进度的数据结构。| 2609e41f4b71Sopenharmony_ci 2610e41f4b71Sopenharmony_ci**错误码:** 2611e41f4b71Sopenharmony_ci 2612e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2613e41f4b71Sopenharmony_ci 2614e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2615e41f4b71Sopenharmony_ci | -------- | -------- | 2616e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 2617e41f4b71Sopenharmony_ci 2618e41f4b71Sopenharmony_ci**示例:** 2619e41f4b71Sopenharmony_ci 2620e41f4b71Sopenharmony_ci ```ts 2621e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 2622e41f4b71Sopenharmony_ci 2623e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 2624e41f4b71Sopenharmony_ci name: "taskOnTest", 2625e41f4b71Sopenharmony_ci value: { 2626e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 2627e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 2628e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 2629e41f4b71Sopenharmony_ci } 2630e41f4b71Sopenharmony_ci }]; 2631e41f4b71Sopenharmony_ci let config: request.agent.Config = { 2632e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 2633e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 2634e41f4b71Sopenharmony_ci title: 'taskOnTest', 2635e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 2636e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 2637e41f4b71Sopenharmony_ci overwrite: false, 2638e41f4b71Sopenharmony_ci method: "PUT", 2639e41f4b71Sopenharmony_ci data: attachments, 2640e41f4b71Sopenharmony_ci saveas: "./", 2641e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 2642e41f4b71Sopenharmony_ci metered: false, 2643e41f4b71Sopenharmony_ci roaming: true, 2644e41f4b71Sopenharmony_ci retry: true, 2645e41f4b71Sopenharmony_ci redirect: true, 2646e41f4b71Sopenharmony_ci index: 0, 2647e41f4b71Sopenharmony_ci begins: 0, 2648e41f4b71Sopenharmony_ci ends: -1, 2649e41f4b71Sopenharmony_ci gauge: false, 2650e41f4b71Sopenharmony_ci precise: false, 2651e41f4b71Sopenharmony_ci token: "it is a secret" 2652e41f4b71Sopenharmony_ci }; 2653e41f4b71Sopenharmony_ci let createOnCallback = (progress: request.agent.Progress) => { 2654e41f4b71Sopenharmony_ci console.info('upload task progress.'); 2655e41f4b71Sopenharmony_ci }; 2656e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 2657e41f4b71Sopenharmony_ci task.on('progress', createOnCallback); 2658e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 2659e41f4b71Sopenharmony_ci task.start(); 2660e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2661e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 2662e41f4b71Sopenharmony_ci }); 2663e41f4b71Sopenharmony_ci ``` 2664e41f4b71Sopenharmony_ci 2665e41f4b71Sopenharmony_ci> **说明:** 2666e41f4b71Sopenharmony_ci> 2667e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 2668e41f4b71Sopenharmony_ci 2669e41f4b71Sopenharmony_ci### on('completed')<sup>10+</sup> 2670e41f4b71Sopenharmony_ci 2671e41f4b71Sopenharmony_cion(event: 'completed', callback: (progress: [Progress](#progress10)) => void): void 2672e41f4b71Sopenharmony_ci 2673e41f4b71Sopenharmony_ci订阅任务完成事件,异步方法,使用callback形式返回结果。 2674e41f4b71Sopenharmony_ci 2675e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2676e41f4b71Sopenharmony_ci 2677e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2678e41f4b71Sopenharmony_ci 2679e41f4b71Sopenharmony_ci**参数:** 2680e41f4b71Sopenharmony_ci 2681e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2682e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2683e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'completed',表示任务完成。 | 2684e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务进度的数据结构。 | 2685e41f4b71Sopenharmony_ci 2686e41f4b71Sopenharmony_ci**错误码:** 2687e41f4b71Sopenharmony_ci 2688e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2689e41f4b71Sopenharmony_ci 2690e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2691e41f4b71Sopenharmony_ci | -------- | -------- | 2692e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 2693e41f4b71Sopenharmony_ci 2694e41f4b71Sopenharmony_ci**示例:** 2695e41f4b71Sopenharmony_ci 2696e41f4b71Sopenharmony_ci ```ts 2697e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 2698e41f4b71Sopenharmony_ci 2699e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 2700e41f4b71Sopenharmony_ci name: "taskOnTest", 2701e41f4b71Sopenharmony_ci value: { 2702e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 2703e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 2704e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 2705e41f4b71Sopenharmony_ci } 2706e41f4b71Sopenharmony_ci }]; 2707e41f4b71Sopenharmony_ci let config: request.agent.Config = { 2708e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 2709e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 2710e41f4b71Sopenharmony_ci title: 'taskOnTest', 2711e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 2712e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 2713e41f4b71Sopenharmony_ci overwrite: false, 2714e41f4b71Sopenharmony_ci method: "PUT", 2715e41f4b71Sopenharmony_ci data: attachments, 2716e41f4b71Sopenharmony_ci saveas: "./", 2717e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 2718e41f4b71Sopenharmony_ci metered: false, 2719e41f4b71Sopenharmony_ci roaming: true, 2720e41f4b71Sopenharmony_ci retry: true, 2721e41f4b71Sopenharmony_ci redirect: true, 2722e41f4b71Sopenharmony_ci index: 0, 2723e41f4b71Sopenharmony_ci begins: 0, 2724e41f4b71Sopenharmony_ci ends: -1, 2725e41f4b71Sopenharmony_ci gauge: false, 2726e41f4b71Sopenharmony_ci precise: false, 2727e41f4b71Sopenharmony_ci token: "it is a secret" 2728e41f4b71Sopenharmony_ci }; 2729e41f4b71Sopenharmony_ci let createOnCallback = (progress: request.agent.Progress) => { 2730e41f4b71Sopenharmony_ci console.info('upload task completed.'); 2731e41f4b71Sopenharmony_ci }; 2732e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 2733e41f4b71Sopenharmony_ci task.on('completed', createOnCallback); 2734e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 2735e41f4b71Sopenharmony_ci task.start(); 2736e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2737e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 2738e41f4b71Sopenharmony_ci }); 2739e41f4b71Sopenharmony_ci ``` 2740e41f4b71Sopenharmony_ci 2741e41f4b71Sopenharmony_ci> **说明:** 2742e41f4b71Sopenharmony_ci> 2743e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 2744e41f4b71Sopenharmony_ci 2745e41f4b71Sopenharmony_ci### on('failed')<sup>10+</sup> 2746e41f4b71Sopenharmony_ci 2747e41f4b71Sopenharmony_cion(event: 'failed', callback: (progress: [Progress](#progress10)) => void): void 2748e41f4b71Sopenharmony_ci 2749e41f4b71Sopenharmony_ci订阅任务失败事件,异步方法,使用callback形式返回结果。可通过调用[request.agent.show<sup>10+</sup>](#requestagentshow10-1)查看错误原因。 2750e41f4b71Sopenharmony_ci 2751e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 2752e41f4b71Sopenharmony_ci 2753e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2754e41f4b71Sopenharmony_ci 2755e41f4b71Sopenharmony_ci**参数:** 2756e41f4b71Sopenharmony_ci 2757e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2758e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2759e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'failed',表示任务失败。 | 2760e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务进度的数据结构。 | 2761e41f4b71Sopenharmony_ci 2762e41f4b71Sopenharmony_ci**错误码:** 2763e41f4b71Sopenharmony_ci 2764e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 2765e41f4b71Sopenharmony_ci 2766e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2767e41f4b71Sopenharmony_ci | -------- | -------- | 2768e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 2769e41f4b71Sopenharmony_ci 2770e41f4b71Sopenharmony_ci**示例:** 2771e41f4b71Sopenharmony_ci 2772e41f4b71Sopenharmony_ci ```ts 2773e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 2774e41f4b71Sopenharmony_ci 2775e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 2776e41f4b71Sopenharmony_ci name: "taskOnTest", 2777e41f4b71Sopenharmony_ci value: { 2778e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 2779e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 2780e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 2781e41f4b71Sopenharmony_ci } 2782e41f4b71Sopenharmony_ci }]; 2783e41f4b71Sopenharmony_ci let config: request.agent.Config = { 2784e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 2785e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 2786e41f4b71Sopenharmony_ci title: 'taskOnTest', 2787e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 2788e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 2789e41f4b71Sopenharmony_ci overwrite: false, 2790e41f4b71Sopenharmony_ci method: "PUT", 2791e41f4b71Sopenharmony_ci data: attachments, 2792e41f4b71Sopenharmony_ci saveas: "./", 2793e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 2794e41f4b71Sopenharmony_ci metered: false, 2795e41f4b71Sopenharmony_ci roaming: true, 2796e41f4b71Sopenharmony_ci retry: true, 2797e41f4b71Sopenharmony_ci redirect: true, 2798e41f4b71Sopenharmony_ci index: 0, 2799e41f4b71Sopenharmony_ci begins: 0, 2800e41f4b71Sopenharmony_ci ends: -1, 2801e41f4b71Sopenharmony_ci gauge: false, 2802e41f4b71Sopenharmony_ci precise: false, 2803e41f4b71Sopenharmony_ci token: "it is a secret" 2804e41f4b71Sopenharmony_ci }; 2805e41f4b71Sopenharmony_ci let createOnCallback = (progress: request.agent.Progress) => { 2806e41f4b71Sopenharmony_ci console.info('upload task failed.'); 2807e41f4b71Sopenharmony_ci }; 2808e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 2809e41f4b71Sopenharmony_ci task.on('failed', createOnCallback); 2810e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 2811e41f4b71Sopenharmony_ci task.start(); 2812e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2813e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 2814e41f4b71Sopenharmony_ci }); 2815e41f4b71Sopenharmony_ci ``` 2816e41f4b71Sopenharmony_ci 2817e41f4b71Sopenharmony_ci> **说明:** 2818e41f4b71Sopenharmony_ci> 2819e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 2820e41f4b71Sopenharmony_ci 2821e41f4b71Sopenharmony_ci### on('pause')<sup>11+</sup> 2822e41f4b71Sopenharmony_ci 2823e41f4b71Sopenharmony_cion(event: 'pause', callback: (progress: [Progress](#progress10)) => void): void 2824e41f4b71Sopenharmony_ci 2825e41f4b71Sopenharmony_ci订阅任务暂停事件,异步方法,使用callback形式返回结果。 2826e41f4b71Sopenharmony_ci 2827e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2828e41f4b71Sopenharmony_ci 2829e41f4b71Sopenharmony_ci**参数:** 2830e41f4b71Sopenharmony_ci 2831e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2832e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2833e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'pause',表示任务暂停。 | 2834e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务进度的数据结构。 | 2835e41f4b71Sopenharmony_ci 2836e41f4b71Sopenharmony_ci**错误码:** 2837e41f4b71Sopenharmony_ci 2838e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 2839e41f4b71Sopenharmony_ci 2840e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2841e41f4b71Sopenharmony_ci | -------- | -------- | 2842e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 2843e41f4b71Sopenharmony_ci 2844e41f4b71Sopenharmony_ci**示例:** 2845e41f4b71Sopenharmony_ci 2846e41f4b71Sopenharmony_ci ```ts 2847e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 2848e41f4b71Sopenharmony_ci 2849e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 2850e41f4b71Sopenharmony_ci name: "taskOnTest", 2851e41f4b71Sopenharmony_ci value: { 2852e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 2853e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 2854e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 2855e41f4b71Sopenharmony_ci } 2856e41f4b71Sopenharmony_ci }]; 2857e41f4b71Sopenharmony_ci let config: request.agent.Config = { 2858e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 2859e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 2860e41f4b71Sopenharmony_ci title: 'taskOnTest', 2861e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 2862e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 2863e41f4b71Sopenharmony_ci overwrite: false, 2864e41f4b71Sopenharmony_ci method: "PUT", 2865e41f4b71Sopenharmony_ci data: attachments, 2866e41f4b71Sopenharmony_ci saveas: "./", 2867e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 2868e41f4b71Sopenharmony_ci metered: false, 2869e41f4b71Sopenharmony_ci roaming: true, 2870e41f4b71Sopenharmony_ci retry: true, 2871e41f4b71Sopenharmony_ci redirect: true, 2872e41f4b71Sopenharmony_ci index: 0, 2873e41f4b71Sopenharmony_ci begins: 0, 2874e41f4b71Sopenharmony_ci ends: -1, 2875e41f4b71Sopenharmony_ci gauge: false, 2876e41f4b71Sopenharmony_ci precise: false, 2877e41f4b71Sopenharmony_ci token: "it is a secret" 2878e41f4b71Sopenharmony_ci }; 2879e41f4b71Sopenharmony_ci let createOnCallback = (progress: request.agent.Progress) => { 2880e41f4b71Sopenharmony_ci console.info('upload task pause.'); 2881e41f4b71Sopenharmony_ci }; 2882e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 2883e41f4b71Sopenharmony_ci task.on('pause', createOnCallback); 2884e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 2885e41f4b71Sopenharmony_ci task.start(); 2886e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2887e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 2888e41f4b71Sopenharmony_ci }); 2889e41f4b71Sopenharmony_ci ``` 2890e41f4b71Sopenharmony_ci 2891e41f4b71Sopenharmony_ci> **说明:** 2892e41f4b71Sopenharmony_ci> 2893e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 2894e41f4b71Sopenharmony_ci 2895e41f4b71Sopenharmony_ci### on('resume')<sup>11+</sup> 2896e41f4b71Sopenharmony_ci 2897e41f4b71Sopenharmony_cion(event: 'resume', callback: (progress: [Progress](#progress10)) => void): void 2898e41f4b71Sopenharmony_ci 2899e41f4b71Sopenharmony_ci订阅任务恢复事件,异步方法,使用callback形式返回结果。 2900e41f4b71Sopenharmony_ci 2901e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2902e41f4b71Sopenharmony_ci 2903e41f4b71Sopenharmony_ci**参数:** 2904e41f4b71Sopenharmony_ci 2905e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2906e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2907e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'resume',表示任务恢复。 | 2908e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务进度的数据结构。 | 2909e41f4b71Sopenharmony_ci 2910e41f4b71Sopenharmony_ci**错误码:** 2911e41f4b71Sopenharmony_ci 2912e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 2913e41f4b71Sopenharmony_ci 2914e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2915e41f4b71Sopenharmony_ci | -------- | -------- | 2916e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 2917e41f4b71Sopenharmony_ci 2918e41f4b71Sopenharmony_ci**示例:** 2919e41f4b71Sopenharmony_ci 2920e41f4b71Sopenharmony_ci ```ts 2921e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 2922e41f4b71Sopenharmony_ci 2923e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 2924e41f4b71Sopenharmony_ci name: "taskOnTest", 2925e41f4b71Sopenharmony_ci value: { 2926e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 2927e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 2928e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 2929e41f4b71Sopenharmony_ci } 2930e41f4b71Sopenharmony_ci }]; 2931e41f4b71Sopenharmony_ci let config: request.agent.Config = { 2932e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 2933e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 2934e41f4b71Sopenharmony_ci title: 'taskOnTest', 2935e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 2936e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 2937e41f4b71Sopenharmony_ci overwrite: false, 2938e41f4b71Sopenharmony_ci method: "PUT", 2939e41f4b71Sopenharmony_ci data: attachments, 2940e41f4b71Sopenharmony_ci saveas: "./", 2941e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 2942e41f4b71Sopenharmony_ci metered: false, 2943e41f4b71Sopenharmony_ci roaming: true, 2944e41f4b71Sopenharmony_ci retry: true, 2945e41f4b71Sopenharmony_ci redirect: true, 2946e41f4b71Sopenharmony_ci index: 0, 2947e41f4b71Sopenharmony_ci begins: 0, 2948e41f4b71Sopenharmony_ci ends: -1, 2949e41f4b71Sopenharmony_ci gauge: false, 2950e41f4b71Sopenharmony_ci precise: false, 2951e41f4b71Sopenharmony_ci token: "it is a secret" 2952e41f4b71Sopenharmony_ci }; 2953e41f4b71Sopenharmony_ci let createOnCallback = (progress: request.agent.Progress) => { 2954e41f4b71Sopenharmony_ci console.info('upload task resume.'); 2955e41f4b71Sopenharmony_ci }; 2956e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 2957e41f4b71Sopenharmony_ci task.on('resume', createOnCallback); 2958e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 2959e41f4b71Sopenharmony_ci task.start(); 2960e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2961e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 2962e41f4b71Sopenharmony_ci }); 2963e41f4b71Sopenharmony_ci ``` 2964e41f4b71Sopenharmony_ci 2965e41f4b71Sopenharmony_ci> **说明:** 2966e41f4b71Sopenharmony_ci> 2967e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 2968e41f4b71Sopenharmony_ci 2969e41f4b71Sopenharmony_ci### on('remove')<sup>11+</sup> 2970e41f4b71Sopenharmony_ci 2971e41f4b71Sopenharmony_cion(event: 'remove', callback: (progress: [Progress](#progress10)) => void): void 2972e41f4b71Sopenharmony_ci 2973e41f4b71Sopenharmony_ci订阅任务删除事件,异步方法,使用callback形式返回结果。 2974e41f4b71Sopenharmony_ci 2975e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 2976e41f4b71Sopenharmony_ci 2977e41f4b71Sopenharmony_ci**参数:** 2978e41f4b71Sopenharmony_ci 2979e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 2980e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 2981e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'remove',表示任务删除。 | 2982e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务进度的数据结构。 | 2983e41f4b71Sopenharmony_ci 2984e41f4b71Sopenharmony_ci**错误码:** 2985e41f4b71Sopenharmony_ci 2986e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 2987e41f4b71Sopenharmony_ci 2988e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 2989e41f4b71Sopenharmony_ci | -------- | -------- | 2990e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 2991e41f4b71Sopenharmony_ci 2992e41f4b71Sopenharmony_ci**示例:** 2993e41f4b71Sopenharmony_ci 2994e41f4b71Sopenharmony_ci ```ts 2995e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 2996e41f4b71Sopenharmony_ci 2997e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 2998e41f4b71Sopenharmony_ci name: "taskOnTest", 2999e41f4b71Sopenharmony_ci value: { 3000e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 3001e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3002e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 3003e41f4b71Sopenharmony_ci } 3004e41f4b71Sopenharmony_ci }]; 3005e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3006e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3007e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3008e41f4b71Sopenharmony_ci title: 'taskOnTest', 3009e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3010e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3011e41f4b71Sopenharmony_ci overwrite: false, 3012e41f4b71Sopenharmony_ci method: "PUT", 3013e41f4b71Sopenharmony_ci data: attachments, 3014e41f4b71Sopenharmony_ci saveas: "./", 3015e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3016e41f4b71Sopenharmony_ci metered: false, 3017e41f4b71Sopenharmony_ci roaming: true, 3018e41f4b71Sopenharmony_ci retry: true, 3019e41f4b71Sopenharmony_ci redirect: true, 3020e41f4b71Sopenharmony_ci index: 0, 3021e41f4b71Sopenharmony_ci begins: 0, 3022e41f4b71Sopenharmony_ci ends: -1, 3023e41f4b71Sopenharmony_ci gauge: false, 3024e41f4b71Sopenharmony_ci precise: false, 3025e41f4b71Sopenharmony_ci token: "it is a secret" 3026e41f4b71Sopenharmony_ci }; 3027e41f4b71Sopenharmony_ci let createOnCallback = (progress: request.agent.Progress) => { 3028e41f4b71Sopenharmony_ci console.info('upload task remove.'); 3029e41f4b71Sopenharmony_ci }; 3030e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3031e41f4b71Sopenharmony_ci task.on('remove', createOnCallback); 3032e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3033e41f4b71Sopenharmony_ci task.start(); 3034e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3035e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3036e41f4b71Sopenharmony_ci }); 3037e41f4b71Sopenharmony_ci ``` 3038e41f4b71Sopenharmony_ci 3039e41f4b71Sopenharmony_ci> **说明:** 3040e41f4b71Sopenharmony_ci> 3041e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3042e41f4b71Sopenharmony_ci 3043e41f4b71Sopenharmony_ci### on('response')<sup>12+</sup> 3044e41f4b71Sopenharmony_ci 3045e41f4b71Sopenharmony_cion(event: 'response', callback: Callback<HttpResponse>): void 3046e41f4b71Sopenharmony_ci 3047e41f4b71Sopenharmony_ci订阅任务响应头,异步方法,使用callback形式返回结果。 3048e41f4b71Sopenharmony_ci 3049e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3050e41f4b71Sopenharmony_ci 3051e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3052e41f4b71Sopenharmony_ci 3053e41f4b71Sopenharmony_ci**参数:** 3054e41f4b71Sopenharmony_ci 3055e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3056e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3057e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'response',表示任务响应。 | 3058e41f4b71Sopenharmony_ci | callback | function | 是 | 发生相关的事件时触发该回调方法,返回任务响应头的数据结构。 | 3059e41f4b71Sopenharmony_ci 3060e41f4b71Sopenharmony_ci**错误码:** 3061e41f4b71Sopenharmony_ci 3062e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 3063e41f4b71Sopenharmony_ci 3064e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3065e41f4b71Sopenharmony_ci | -------- | -------- | 3066e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3067e41f4b71Sopenharmony_ci 3068e41f4b71Sopenharmony_ci**示例:** 3069e41f4b71Sopenharmony_ci 3070e41f4b71Sopenharmony_ci ```ts 3071e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3072e41f4b71Sopenharmony_ci 3073e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3074e41f4b71Sopenharmony_ci name: "taskOnTest", 3075e41f4b71Sopenharmony_ci value: { 3076e41f4b71Sopenharmony_ci filename: "taskOnTest.avi", 3077e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3078e41f4b71Sopenharmony_ci path: "./taskOnTest.avi", 3079e41f4b71Sopenharmony_ci } 3080e41f4b71Sopenharmony_ci }]; 3081e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3082e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3083e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3084e41f4b71Sopenharmony_ci title: 'taskOnTest', 3085e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3086e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3087e41f4b71Sopenharmony_ci overwrite: false, 3088e41f4b71Sopenharmony_ci method: "PUT", 3089e41f4b71Sopenharmony_ci data: attachments, 3090e41f4b71Sopenharmony_ci saveas: "./", 3091e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3092e41f4b71Sopenharmony_ci metered: false, 3093e41f4b71Sopenharmony_ci roaming: true, 3094e41f4b71Sopenharmony_ci retry: true, 3095e41f4b71Sopenharmony_ci redirect: true, 3096e41f4b71Sopenharmony_ci index: 0, 3097e41f4b71Sopenharmony_ci begins: 0, 3098e41f4b71Sopenharmony_ci ends: -1, 3099e41f4b71Sopenharmony_ci gauge: false, 3100e41f4b71Sopenharmony_ci precise: false, 3101e41f4b71Sopenharmony_ci token: "it is a secret" 3102e41f4b71Sopenharmony_ci }; 3103e41f4b71Sopenharmony_ci let createOnCallback = (response: request.agent.HttpResponse) => { 3104e41f4b71Sopenharmony_ci console.info('upload task response.'); 3105e41f4b71Sopenharmony_ci }; 3106e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3107e41f4b71Sopenharmony_ci task.on('response', createOnCallback); 3108e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3109e41f4b71Sopenharmony_ci task.start(); 3110e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3111e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3112e41f4b71Sopenharmony_ci }); 3113e41f4b71Sopenharmony_ci ``` 3114e41f4b71Sopenharmony_ci 3115e41f4b71Sopenharmony_ci> **说明:** 3116e41f4b71Sopenharmony_ci> 3117e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3118e41f4b71Sopenharmony_ci 3119e41f4b71Sopenharmony_ci### off('progress')<sup>10+</sup> 3120e41f4b71Sopenharmony_ci 3121e41f4b71Sopenharmony_cioff(event: 'progress', callback?: (progress: [Progress](#progress10)) => void): void 3122e41f4b71Sopenharmony_ci 3123e41f4b71Sopenharmony_ci取消订阅任务进度事件。 3124e41f4b71Sopenharmony_ci 3125e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3126e41f4b71Sopenharmony_ci 3127e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3128e41f4b71Sopenharmony_ci 3129e41f4b71Sopenharmony_ci**参数:** 3130e41f4b71Sopenharmony_ci 3131e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3132e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3133e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'progress',表示任务进度。 | 3134e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3135e41f4b71Sopenharmony_ci 3136e41f4b71Sopenharmony_ci**错误码:** 3137e41f4b71Sopenharmony_ci 3138e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 3139e41f4b71Sopenharmony_ci 3140e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3141e41f4b71Sopenharmony_ci | -------- | -------- | 3142e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3143e41f4b71Sopenharmony_ci 3144e41f4b71Sopenharmony_ci**示例:** 3145e41f4b71Sopenharmony_ci 3146e41f4b71Sopenharmony_ci ```ts 3147e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3148e41f4b71Sopenharmony_ci 3149e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3150e41f4b71Sopenharmony_ci name: "taskOffTest", 3151e41f4b71Sopenharmony_ci value: { 3152e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3153e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3154e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3155e41f4b71Sopenharmony_ci } 3156e41f4b71Sopenharmony_ci }]; 3157e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3158e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3159e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3160e41f4b71Sopenharmony_ci title: 'taskOffTest', 3161e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3162e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3163e41f4b71Sopenharmony_ci overwrite: false, 3164e41f4b71Sopenharmony_ci method: "PUT", 3165e41f4b71Sopenharmony_ci data: attachments, 3166e41f4b71Sopenharmony_ci saveas: "./", 3167e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3168e41f4b71Sopenharmony_ci metered: false, 3169e41f4b71Sopenharmony_ci roaming: true, 3170e41f4b71Sopenharmony_ci retry: true, 3171e41f4b71Sopenharmony_ci redirect: true, 3172e41f4b71Sopenharmony_ci index: 0, 3173e41f4b71Sopenharmony_ci begins: 0, 3174e41f4b71Sopenharmony_ci ends: -1, 3175e41f4b71Sopenharmony_ci gauge: false, 3176e41f4b71Sopenharmony_ci precise: false, 3177e41f4b71Sopenharmony_ci token: "it is a secret" 3178e41f4b71Sopenharmony_ci }; 3179e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.Progress) => { 3180e41f4b71Sopenharmony_ci console.info('upload task progress.'); 3181e41f4b71Sopenharmony_ci }; 3182e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.Progress) => { 3183e41f4b71Sopenharmony_ci console.info('upload task progress.'); 3184e41f4b71Sopenharmony_ci }; 3185e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3186e41f4b71Sopenharmony_ci task.on('progress', createOffCallback1); 3187e41f4b71Sopenharmony_ci task.on('progress', createOffCallback2); 3188e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3189e41f4b71Sopenharmony_ci task.off('progress', createOffCallback1); 3190e41f4b71Sopenharmony_ci //表示取消订阅任务进度的所有回调 3191e41f4b71Sopenharmony_ci task.off('progress'); 3192e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3193e41f4b71Sopenharmony_ci task.start(); 3194e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3195e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3196e41f4b71Sopenharmony_ci }); 3197e41f4b71Sopenharmony_ci ``` 3198e41f4b71Sopenharmony_ci 3199e41f4b71Sopenharmony_ci> **说明:** 3200e41f4b71Sopenharmony_ci> 3201e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3202e41f4b71Sopenharmony_ci 3203e41f4b71Sopenharmony_ci### off('completed')<sup>10+</sup> 3204e41f4b71Sopenharmony_ci 3205e41f4b71Sopenharmony_cioff(event: 'completed', callback?: (progress: [Progress](#progress10)) => void): void 3206e41f4b71Sopenharmony_ci 3207e41f4b71Sopenharmony_ci取消订阅任务完成事件。 3208e41f4b71Sopenharmony_ci 3209e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3210e41f4b71Sopenharmony_ci 3211e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3212e41f4b71Sopenharmony_ci 3213e41f4b71Sopenharmony_ci**参数:** 3214e41f4b71Sopenharmony_ci 3215e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3216e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3217e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'completed',表示任务完成。 | 3218e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3219e41f4b71Sopenharmony_ci 3220e41f4b71Sopenharmony_ci**错误码:** 3221e41f4b71Sopenharmony_ci 3222e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 3223e41f4b71Sopenharmony_ci 3224e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3225e41f4b71Sopenharmony_ci | -------- | -------- | 3226e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3227e41f4b71Sopenharmony_ci 3228e41f4b71Sopenharmony_ci**示例:** 3229e41f4b71Sopenharmony_ci 3230e41f4b71Sopenharmony_ci ```ts 3231e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3232e41f4b71Sopenharmony_ci 3233e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3234e41f4b71Sopenharmony_ci name: "taskOffTest", 3235e41f4b71Sopenharmony_ci value: { 3236e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3237e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3238e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3239e41f4b71Sopenharmony_ci } 3240e41f4b71Sopenharmony_ci }]; 3241e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3242e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3243e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3244e41f4b71Sopenharmony_ci title: 'taskOffTest', 3245e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3246e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3247e41f4b71Sopenharmony_ci overwrite: false, 3248e41f4b71Sopenharmony_ci method: "PUT", 3249e41f4b71Sopenharmony_ci data: attachments, 3250e41f4b71Sopenharmony_ci saveas: "./", 3251e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3252e41f4b71Sopenharmony_ci metered: false, 3253e41f4b71Sopenharmony_ci roaming: true, 3254e41f4b71Sopenharmony_ci retry: true, 3255e41f4b71Sopenharmony_ci redirect: true, 3256e41f4b71Sopenharmony_ci index: 0, 3257e41f4b71Sopenharmony_ci begins: 0, 3258e41f4b71Sopenharmony_ci ends: -1, 3259e41f4b71Sopenharmony_ci gauge: false, 3260e41f4b71Sopenharmony_ci precise: false, 3261e41f4b71Sopenharmony_ci token: "it is a secret" 3262e41f4b71Sopenharmony_ci }; 3263e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.Progress) => { 3264e41f4b71Sopenharmony_ci console.info('upload task completed.'); 3265e41f4b71Sopenharmony_ci }; 3266e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.Progress) => { 3267e41f4b71Sopenharmony_ci console.info('upload task completed.'); 3268e41f4b71Sopenharmony_ci }; 3269e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3270e41f4b71Sopenharmony_ci task.on('completed', createOffCallback1); 3271e41f4b71Sopenharmony_ci task.on('completed', createOffCallback2); 3272e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3273e41f4b71Sopenharmony_ci task.off('completed', createOffCallback1); 3274e41f4b71Sopenharmony_ci //表示取消订阅任务完成的所有回调 3275e41f4b71Sopenharmony_ci task.off('completed'); 3276e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3277e41f4b71Sopenharmony_ci task.start(); 3278e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3279e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3280e41f4b71Sopenharmony_ci }); 3281e41f4b71Sopenharmony_ci ``` 3282e41f4b71Sopenharmony_ci 3283e41f4b71Sopenharmony_ci> **说明:** 3284e41f4b71Sopenharmony_ci> 3285e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3286e41f4b71Sopenharmony_ci 3287e41f4b71Sopenharmony_ci### off('failed')<sup>10+</sup> 3288e41f4b71Sopenharmony_ci 3289e41f4b71Sopenharmony_cioff(event: 'failed', callback?: (progress: [Progress](#progress10)) => void): void 3290e41f4b71Sopenharmony_ci 3291e41f4b71Sopenharmony_ci取消订阅任务失败事件。 3292e41f4b71Sopenharmony_ci 3293e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3294e41f4b71Sopenharmony_ci 3295e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3296e41f4b71Sopenharmony_ci 3297e41f4b71Sopenharmony_ci**参数:** 3298e41f4b71Sopenharmony_ci 3299e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3300e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3301e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'failed',表示任务失败。 | 3302e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3303e41f4b71Sopenharmony_ci 3304e41f4b71Sopenharmony_ci**错误码:** 3305e41f4b71Sopenharmony_ci 3306e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 3307e41f4b71Sopenharmony_ci 3308e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3309e41f4b71Sopenharmony_ci | -------- | -------- | 3310e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3311e41f4b71Sopenharmony_ci 3312e41f4b71Sopenharmony_ci**示例:** 3313e41f4b71Sopenharmony_ci 3314e41f4b71Sopenharmony_ci ```ts 3315e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3316e41f4b71Sopenharmony_ci 3317e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3318e41f4b71Sopenharmony_ci name: "taskOffTest", 3319e41f4b71Sopenharmony_ci value: { 3320e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3321e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3322e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3323e41f4b71Sopenharmony_ci } 3324e41f4b71Sopenharmony_ci }]; 3325e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3326e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3327e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3328e41f4b71Sopenharmony_ci title: 'taskOffTest', 3329e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3330e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3331e41f4b71Sopenharmony_ci overwrite: false, 3332e41f4b71Sopenharmony_ci method: "PUT", 3333e41f4b71Sopenharmony_ci data: attachments, 3334e41f4b71Sopenharmony_ci saveas: "./", 3335e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3336e41f4b71Sopenharmony_ci metered: false, 3337e41f4b71Sopenharmony_ci roaming: true, 3338e41f4b71Sopenharmony_ci retry: true, 3339e41f4b71Sopenharmony_ci redirect: true, 3340e41f4b71Sopenharmony_ci index: 0, 3341e41f4b71Sopenharmony_ci begins: 0, 3342e41f4b71Sopenharmony_ci ends: -1, 3343e41f4b71Sopenharmony_ci gauge: false, 3344e41f4b71Sopenharmony_ci precise: false, 3345e41f4b71Sopenharmony_ci token: "it is a secret" 3346e41f4b71Sopenharmony_ci }; 3347e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.Progress) => { 3348e41f4b71Sopenharmony_ci console.info('upload task failed.'); 3349e41f4b71Sopenharmony_ci }; 3350e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.Progress) => { 3351e41f4b71Sopenharmony_ci console.info('upload task failed.'); 3352e41f4b71Sopenharmony_ci }; 3353e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3354e41f4b71Sopenharmony_ci task.on('failed', createOffCallback1); 3355e41f4b71Sopenharmony_ci task.on('failed', createOffCallback2); 3356e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3357e41f4b71Sopenharmony_ci task.off('failed', createOffCallback1); 3358e41f4b71Sopenharmony_ci //表示取消订阅任务失败的所有回调 3359e41f4b71Sopenharmony_ci task.off('failed'); 3360e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3361e41f4b71Sopenharmony_ci task.start(); 3362e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3363e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3364e41f4b71Sopenharmony_ci }); 3365e41f4b71Sopenharmony_ci ``` 3366e41f4b71Sopenharmony_ci 3367e41f4b71Sopenharmony_ci> **说明:** 3368e41f4b71Sopenharmony_ci> 3369e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3370e41f4b71Sopenharmony_ci 3371e41f4b71Sopenharmony_ci### off('pause')<sup>11+</sup> 3372e41f4b71Sopenharmony_ci 3373e41f4b71Sopenharmony_cioff(event: 'pause', callback?: (progress: [Progress](#progress10)) => void): void 3374e41f4b71Sopenharmony_ci 3375e41f4b71Sopenharmony_ci取消订阅任务暂停事件。 3376e41f4b71Sopenharmony_ci 3377e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3378e41f4b71Sopenharmony_ci 3379e41f4b71Sopenharmony_ci**参数:** 3380e41f4b71Sopenharmony_ci 3381e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3382e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3383e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'pause',表示任务暂停。 | 3384e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3385e41f4b71Sopenharmony_ci 3386e41f4b71Sopenharmony_ci**错误码:** 3387e41f4b71Sopenharmony_ci 3388e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 3389e41f4b71Sopenharmony_ci 3390e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3391e41f4b71Sopenharmony_ci | -------- | -------- | 3392e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3393e41f4b71Sopenharmony_ci 3394e41f4b71Sopenharmony_ci**示例:** 3395e41f4b71Sopenharmony_ci 3396e41f4b71Sopenharmony_ci ```ts 3397e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3398e41f4b71Sopenharmony_ci 3399e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3400e41f4b71Sopenharmony_ci name: "taskOffTest", 3401e41f4b71Sopenharmony_ci value: { 3402e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3403e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3404e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3405e41f4b71Sopenharmony_ci } 3406e41f4b71Sopenharmony_ci }]; 3407e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3408e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3409e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3410e41f4b71Sopenharmony_ci title: 'taskOffTest', 3411e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3412e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3413e41f4b71Sopenharmony_ci overwrite: false, 3414e41f4b71Sopenharmony_ci method: "PUT", 3415e41f4b71Sopenharmony_ci data: attachments, 3416e41f4b71Sopenharmony_ci saveas: "./", 3417e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3418e41f4b71Sopenharmony_ci metered: false, 3419e41f4b71Sopenharmony_ci roaming: true, 3420e41f4b71Sopenharmony_ci retry: true, 3421e41f4b71Sopenharmony_ci redirect: true, 3422e41f4b71Sopenharmony_ci index: 0, 3423e41f4b71Sopenharmony_ci begins: 0, 3424e41f4b71Sopenharmony_ci ends: -1, 3425e41f4b71Sopenharmony_ci gauge: false, 3426e41f4b71Sopenharmony_ci precise: false, 3427e41f4b71Sopenharmony_ci token: "it is a secret" 3428e41f4b71Sopenharmony_ci }; 3429e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.Progress) => { 3430e41f4b71Sopenharmony_ci console.info('upload task pause.'); 3431e41f4b71Sopenharmony_ci }; 3432e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.Progress) => { 3433e41f4b71Sopenharmony_ci console.info('upload task pause.'); 3434e41f4b71Sopenharmony_ci }; 3435e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3436e41f4b71Sopenharmony_ci task.on('pause', createOffCallback1); 3437e41f4b71Sopenharmony_ci task.on('pause', createOffCallback2); 3438e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3439e41f4b71Sopenharmony_ci task.off('pause', createOffCallback1); 3440e41f4b71Sopenharmony_ci //表示取消订阅任务暂停的所有回调 3441e41f4b71Sopenharmony_ci task.off('pause'); 3442e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3443e41f4b71Sopenharmony_ci task.start(); 3444e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3445e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3446e41f4b71Sopenharmony_ci }); 3447e41f4b71Sopenharmony_ci ``` 3448e41f4b71Sopenharmony_ci 3449e41f4b71Sopenharmony_ci> **说明:** 3450e41f4b71Sopenharmony_ci> 3451e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3452e41f4b71Sopenharmony_ci 3453e41f4b71Sopenharmony_ci### off('resume')<sup>11+</sup> 3454e41f4b71Sopenharmony_ci 3455e41f4b71Sopenharmony_cioff(event: 'resume', callback?: (progress: [Progress](#progress10)) => void): void 3456e41f4b71Sopenharmony_ci 3457e41f4b71Sopenharmony_ci取消订阅任务恢复事件。 3458e41f4b71Sopenharmony_ci 3459e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3460e41f4b71Sopenharmony_ci 3461e41f4b71Sopenharmony_ci**参数:** 3462e41f4b71Sopenharmony_ci 3463e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3464e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3465e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'resume',表示任务恢复。 | 3466e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3467e41f4b71Sopenharmony_ci 3468e41f4b71Sopenharmony_ci**错误码:** 3469e41f4b71Sopenharmony_ci 3470e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 3471e41f4b71Sopenharmony_ci 3472e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3473e41f4b71Sopenharmony_ci | -------- | -------- | 3474e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3475e41f4b71Sopenharmony_ci 3476e41f4b71Sopenharmony_ci**示例:** 3477e41f4b71Sopenharmony_ci 3478e41f4b71Sopenharmony_ci ```ts 3479e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3480e41f4b71Sopenharmony_ci 3481e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3482e41f4b71Sopenharmony_ci name: "taskOffTest", 3483e41f4b71Sopenharmony_ci value: { 3484e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3485e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3486e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3487e41f4b71Sopenharmony_ci } 3488e41f4b71Sopenharmony_ci }]; 3489e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3490e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3491e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3492e41f4b71Sopenharmony_ci title: 'taskOffTest', 3493e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3494e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3495e41f4b71Sopenharmony_ci overwrite: false, 3496e41f4b71Sopenharmony_ci method: "PUT", 3497e41f4b71Sopenharmony_ci data: attachments, 3498e41f4b71Sopenharmony_ci saveas: "./", 3499e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3500e41f4b71Sopenharmony_ci metered: false, 3501e41f4b71Sopenharmony_ci roaming: true, 3502e41f4b71Sopenharmony_ci retry: true, 3503e41f4b71Sopenharmony_ci redirect: true, 3504e41f4b71Sopenharmony_ci index: 0, 3505e41f4b71Sopenharmony_ci begins: 0, 3506e41f4b71Sopenharmony_ci ends: -1, 3507e41f4b71Sopenharmony_ci gauge: false, 3508e41f4b71Sopenharmony_ci precise: false, 3509e41f4b71Sopenharmony_ci token: "it is a secret" 3510e41f4b71Sopenharmony_ci }; 3511e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.Progress) => { 3512e41f4b71Sopenharmony_ci console.info('upload task resume.'); 3513e41f4b71Sopenharmony_ci }; 3514e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.Progress) => { 3515e41f4b71Sopenharmony_ci console.info('upload task resume.'); 3516e41f4b71Sopenharmony_ci }; 3517e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3518e41f4b71Sopenharmony_ci task.on('resume', createOffCallback1); 3519e41f4b71Sopenharmony_ci task.on('resume', createOffCallback2); 3520e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3521e41f4b71Sopenharmony_ci task.off('resume', createOffCallback1); 3522e41f4b71Sopenharmony_ci //表示取消订阅任务恢复的所有回调 3523e41f4b71Sopenharmony_ci task.off('resume'); 3524e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3525e41f4b71Sopenharmony_ci task.start(); 3526e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3527e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3528e41f4b71Sopenharmony_ci }); 3529e41f4b71Sopenharmony_ci ``` 3530e41f4b71Sopenharmony_ci 3531e41f4b71Sopenharmony_ci> **说明:** 3532e41f4b71Sopenharmony_ci> 3533e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3534e41f4b71Sopenharmony_ci 3535e41f4b71Sopenharmony_ci### off('remove')<sup>11+</sup> 3536e41f4b71Sopenharmony_ci 3537e41f4b71Sopenharmony_cioff(event: 'remove', callback?: (progress: [Progress](#progress10)) => void): void 3538e41f4b71Sopenharmony_ci 3539e41f4b71Sopenharmony_ci取消订阅任务删除事件。 3540e41f4b71Sopenharmony_ci 3541e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3542e41f4b71Sopenharmony_ci 3543e41f4b71Sopenharmony_ci**参数:** 3544e41f4b71Sopenharmony_ci 3545e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3546e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3547e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'remove',表示任务删除。 | 3548e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3549e41f4b71Sopenharmony_ci 3550e41f4b71Sopenharmony_ci**错误码:** 3551e41f4b71Sopenharmony_ci 3552e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 3553e41f4b71Sopenharmony_ci 3554e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3555e41f4b71Sopenharmony_ci | -------- | -------- | 3556e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3557e41f4b71Sopenharmony_ci 3558e41f4b71Sopenharmony_ci**示例:** 3559e41f4b71Sopenharmony_ci 3560e41f4b71Sopenharmony_ci ```ts 3561e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3562e41f4b71Sopenharmony_ci 3563e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3564e41f4b71Sopenharmony_ci name: "taskOffTest", 3565e41f4b71Sopenharmony_ci value: { 3566e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3567e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3568e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3569e41f4b71Sopenharmony_ci } 3570e41f4b71Sopenharmony_ci }]; 3571e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3572e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3573e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3574e41f4b71Sopenharmony_ci title: 'taskOffTest', 3575e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3576e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3577e41f4b71Sopenharmony_ci overwrite: false, 3578e41f4b71Sopenharmony_ci method: "PUT", 3579e41f4b71Sopenharmony_ci data: attachments, 3580e41f4b71Sopenharmony_ci saveas: "./", 3581e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3582e41f4b71Sopenharmony_ci metered: false, 3583e41f4b71Sopenharmony_ci roaming: true, 3584e41f4b71Sopenharmony_ci retry: true, 3585e41f4b71Sopenharmony_ci redirect: true, 3586e41f4b71Sopenharmony_ci index: 0, 3587e41f4b71Sopenharmony_ci begins: 0, 3588e41f4b71Sopenharmony_ci ends: -1, 3589e41f4b71Sopenharmony_ci gauge: false, 3590e41f4b71Sopenharmony_ci precise: false, 3591e41f4b71Sopenharmony_ci token: "it is a secret" 3592e41f4b71Sopenharmony_ci }; 3593e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.Progress) => { 3594e41f4b71Sopenharmony_ci console.info('upload task remove.'); 3595e41f4b71Sopenharmony_ci }; 3596e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.Progress) => { 3597e41f4b71Sopenharmony_ci console.info('upload task remove.'); 3598e41f4b71Sopenharmony_ci }; 3599e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3600e41f4b71Sopenharmony_ci task.on('remove', createOffCallback1); 3601e41f4b71Sopenharmony_ci task.on('remove', createOffCallback2); 3602e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3603e41f4b71Sopenharmony_ci task.off('remove', createOffCallback1); 3604e41f4b71Sopenharmony_ci //表示取消订阅任务移除的所有回调 3605e41f4b71Sopenharmony_ci task.off('remove'); 3606e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3607e41f4b71Sopenharmony_ci task.start(); 3608e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3609e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3610e41f4b71Sopenharmony_ci }); 3611e41f4b71Sopenharmony_ci ``` 3612e41f4b71Sopenharmony_ci 3613e41f4b71Sopenharmony_ci> **说明:** 3614e41f4b71Sopenharmony_ci> 3615e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3616e41f4b71Sopenharmony_ci 3617e41f4b71Sopenharmony_ci### off('response')<sup>12+</sup> 3618e41f4b71Sopenharmony_ci 3619e41f4b71Sopenharmony_cioff(event: 'response', callback?: Callback<HttpResponse>): void 3620e41f4b71Sopenharmony_ci 3621e41f4b71Sopenharmony_ci取消订阅任务响应头。 3622e41f4b71Sopenharmony_ci 3623e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3624e41f4b71Sopenharmony_ci 3625e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3626e41f4b71Sopenharmony_ci 3627e41f4b71Sopenharmony_ci**参数:** 3628e41f4b71Sopenharmony_ci 3629e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3630e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3631e41f4b71Sopenharmony_ci | event | string | 是 | 订阅的事件类型。<br>- 取值为'response',表示任务响应。 | 3632e41f4b71Sopenharmony_ci | callback | function | 否 | 需要取消订阅的回调函数。若无此参数,则取消订阅当前类型的所有回调函数。 | 3633e41f4b71Sopenharmony_ci 3634e41f4b71Sopenharmony_ci**错误码:** 3635e41f4b71Sopenharmony_ci 3636e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 3637e41f4b71Sopenharmony_ci 3638e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3639e41f4b71Sopenharmony_ci | -------- | -------- | 3640e41f4b71Sopenharmony_ci | 401 | Parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 3641e41f4b71Sopenharmony_ci 3642e41f4b71Sopenharmony_ci**示例:** 3643e41f4b71Sopenharmony_ci 3644e41f4b71Sopenharmony_ci ```ts 3645e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3646e41f4b71Sopenharmony_ci 3647e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 3648e41f4b71Sopenharmony_ci name: "taskOffTest", 3649e41f4b71Sopenharmony_ci value: { 3650e41f4b71Sopenharmony_ci filename: "taskOffTest.avi", 3651e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 3652e41f4b71Sopenharmony_ci path: "./taskOffTest.avi", 3653e41f4b71Sopenharmony_ci } 3654e41f4b71Sopenharmony_ci }]; 3655e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3656e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 3657e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3658e41f4b71Sopenharmony_ci title: 'taskOffTest', 3659e41f4b71Sopenharmony_ci description: 'Sample code for event listening', 3660e41f4b71Sopenharmony_ci mode: request.agent.Mode.FOREGROUND, 3661e41f4b71Sopenharmony_ci overwrite: false, 3662e41f4b71Sopenharmony_ci method: "PUT", 3663e41f4b71Sopenharmony_ci data: attachments, 3664e41f4b71Sopenharmony_ci saveas: "./", 3665e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3666e41f4b71Sopenharmony_ci metered: false, 3667e41f4b71Sopenharmony_ci roaming: true, 3668e41f4b71Sopenharmony_ci retry: true, 3669e41f4b71Sopenharmony_ci redirect: true, 3670e41f4b71Sopenharmony_ci index: 0, 3671e41f4b71Sopenharmony_ci begins: 0, 3672e41f4b71Sopenharmony_ci ends: -1, 3673e41f4b71Sopenharmony_ci gauge: false, 3674e41f4b71Sopenharmony_ci precise: false, 3675e41f4b71Sopenharmony_ci token: "it is a secret" 3676e41f4b71Sopenharmony_ci }; 3677e41f4b71Sopenharmony_ci let createOffCallback1 = (progress: request.agent.HttpResponse) => { 3678e41f4b71Sopenharmony_ci console.info('upload task response.'); 3679e41f4b71Sopenharmony_ci }; 3680e41f4b71Sopenharmony_ci let createOffCallback2 = (progress: request.agent.HttpResponse) => { 3681e41f4b71Sopenharmony_ci console.info('upload task response.'); 3682e41f4b71Sopenharmony_ci }; 3683e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3684e41f4b71Sopenharmony_ci task.on('response', createOffCallback1); 3685e41f4b71Sopenharmony_ci task.on('response', createOffCallback2); 3686e41f4b71Sopenharmony_ci //表示取消createOffCallback1的订阅 3687e41f4b71Sopenharmony_ci task.off('response', createOffCallback1); 3688e41f4b71Sopenharmony_ci //表示取消订阅任务移除的所有回调 3689e41f4b71Sopenharmony_ci task.off('response'); 3690e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a upload task. result: ${task.tid}`); 3691e41f4b71Sopenharmony_ci task.start(); 3692e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3693e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3694e41f4b71Sopenharmony_ci }); 3695e41f4b71Sopenharmony_ci ``` 3696e41f4b71Sopenharmony_ci 3697e41f4b71Sopenharmony_ci> **说明:** 3698e41f4b71Sopenharmony_ci> 3699e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3700e41f4b71Sopenharmony_ci 3701e41f4b71Sopenharmony_ci### start<sup>10+</sup> 3702e41f4b71Sopenharmony_ci 3703e41f4b71Sopenharmony_cistart(callback: AsyncCallback<void>): void 3704e41f4b71Sopenharmony_ci 3705e41f4b71Sopenharmony_ci以下状态的任务可以被启动: 3706e41f4b71Sopenharmony_ci1. 刚被 request.agent.create 接口创建的任务 3707e41f4b71Sopenharmony_ci2. 使用 request.agent.create 接口创建的已经失败或者停止的下载任务 3708e41f4b71Sopenharmony_ci 3709e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 3710e41f4b71Sopenharmony_ci 3711e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3712e41f4b71Sopenharmony_ci 3713e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3714e41f4b71Sopenharmony_ci 3715e41f4b71Sopenharmony_ci**参数:** 3716e41f4b71Sopenharmony_ci 3717e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3718e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3719e41f4b71Sopenharmony_ci | callback | function | 是 | 回调函数。当开启任务成功,err为undefined,否则为错误对象。 | 3720e41f4b71Sopenharmony_ci 3721e41f4b71Sopenharmony_ci**错误码:** 3722e41f4b71Sopenharmony_ci 3723e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 3724e41f4b71Sopenharmony_ci 3725e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3726e41f4b71Sopenharmony_ci | -------- | -------- | 3727e41f4b71Sopenharmony_ci | 201 | Permission denied. | 3728e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 3729e41f4b71Sopenharmony_ci | 21900007 | task state error. | 3730e41f4b71Sopenharmony_ci 3731e41f4b71Sopenharmony_ci**示例:** 3732e41f4b71Sopenharmony_ci 3733e41f4b71Sopenharmony_ci ```ts 3734e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3735e41f4b71Sopenharmony_ci 3736e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3737e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 3738e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3739e41f4b71Sopenharmony_ci title: 'taskStartTest', 3740e41f4b71Sopenharmony_ci description: 'Sample code for start the download task', 3741e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 3742e41f4b71Sopenharmony_ci overwrite: false, 3743e41f4b71Sopenharmony_ci method: "GET", 3744e41f4b71Sopenharmony_ci data: "", 3745e41f4b71Sopenharmony_ci saveas: "./", 3746e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3747e41f4b71Sopenharmony_ci metered: false, 3748e41f4b71Sopenharmony_ci roaming: true, 3749e41f4b71Sopenharmony_ci retry: true, 3750e41f4b71Sopenharmony_ci redirect: true, 3751e41f4b71Sopenharmony_ci index: 0, 3752e41f4b71Sopenharmony_ci begins: 0, 3753e41f4b71Sopenharmony_ci ends: -1, 3754e41f4b71Sopenharmony_ci gauge: false, 3755e41f4b71Sopenharmony_ci precise: false, 3756e41f4b71Sopenharmony_ci token: "it is a secret" 3757e41f4b71Sopenharmony_ci }; 3758e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3759e41f4b71Sopenharmony_ci task.start((err: BusinessError) => { 3760e41f4b71Sopenharmony_ci if (err) { 3761e41f4b71Sopenharmony_ci console.error(`Failed to start the download task, Code: ${err.code}, message: ${err.message}`); 3762e41f4b71Sopenharmony_ci return; 3763e41f4b71Sopenharmony_ci } 3764e41f4b71Sopenharmony_ci console.info(`Succeeded in starting a download task.`); 3765e41f4b71Sopenharmony_ci }); 3766e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 3767e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3768e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 3769e41f4b71Sopenharmony_ci }); 3770e41f4b71Sopenharmony_ci ``` 3771e41f4b71Sopenharmony_ci 3772e41f4b71Sopenharmony_ci> **说明:** 3773e41f4b71Sopenharmony_ci> 3774e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3775e41f4b71Sopenharmony_ci 3776e41f4b71Sopenharmony_ci### start<sup>10+</sup> 3777e41f4b71Sopenharmony_ci 3778e41f4b71Sopenharmony_cistart(): Promise<void> 3779e41f4b71Sopenharmony_ci 3780e41f4b71Sopenharmony_ci以下状态的任务可以被启动: 3781e41f4b71Sopenharmony_ci1. 刚被request.agent.create 接口创建的任务 3782e41f4b71Sopenharmony_ci2. 使用request.agent.create 接口创建的已经失败或者停止的下载任务 3783e41f4b71Sopenharmony_ci 3784e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 3785e41f4b71Sopenharmony_ci 3786e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3787e41f4b71Sopenharmony_ci 3788e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3789e41f4b71Sopenharmony_ci 3790e41f4b71Sopenharmony_ci**返回值:** 3791e41f4b71Sopenharmony_ci 3792e41f4b71Sopenharmony_ci| 类型 | 说明 | 3793e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 3794e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。无返回结果的Promise对象。 | 3795e41f4b71Sopenharmony_ci 3796e41f4b71Sopenharmony_ci**错误码:** 3797e41f4b71Sopenharmony_ci 3798e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 3799e41f4b71Sopenharmony_ci 3800e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3801e41f4b71Sopenharmony_ci | -------- | -------- | 3802e41f4b71Sopenharmony_ci | 201 | Permission denied. | 3803e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 3804e41f4b71Sopenharmony_ci | 21900007 | task state error. | 3805e41f4b71Sopenharmony_ci 3806e41f4b71Sopenharmony_ci**示例:** 3807e41f4b71Sopenharmony_ci 3808e41f4b71Sopenharmony_ci ```ts 3809e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3810e41f4b71Sopenharmony_ci 3811e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3812e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 3813e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3814e41f4b71Sopenharmony_ci title: 'taskStartTest', 3815e41f4b71Sopenharmony_ci description: 'Sample code for start the download task', 3816e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 3817e41f4b71Sopenharmony_ci overwrite: false, 3818e41f4b71Sopenharmony_ci method: "GET", 3819e41f4b71Sopenharmony_ci data: "", 3820e41f4b71Sopenharmony_ci saveas: "./", 3821e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3822e41f4b71Sopenharmony_ci metered: false, 3823e41f4b71Sopenharmony_ci roaming: true, 3824e41f4b71Sopenharmony_ci retry: true, 3825e41f4b71Sopenharmony_ci redirect: true, 3826e41f4b71Sopenharmony_ci index: 0, 3827e41f4b71Sopenharmony_ci begins: 0, 3828e41f4b71Sopenharmony_ci ends: -1, 3829e41f4b71Sopenharmony_ci gauge: false, 3830e41f4b71Sopenharmony_ci precise: false, 3831e41f4b71Sopenharmony_ci token: "it is a secret" 3832e41f4b71Sopenharmony_ci }; 3833e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3834e41f4b71Sopenharmony_ci task.start().then(() => { 3835e41f4b71Sopenharmony_ci console.info(`Succeeded in starting a download task.`); 3836e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3837e41f4b71Sopenharmony_ci console.error(`Failed to start the download task, Code: ${err.code}, message: ${err.message}`); 3838e41f4b71Sopenharmony_ci }); 3839e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 3840e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3841e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 3842e41f4b71Sopenharmony_ci }); 3843e41f4b71Sopenharmony_ci ``` 3844e41f4b71Sopenharmony_ci 3845e41f4b71Sopenharmony_ci> **说明:** 3846e41f4b71Sopenharmony_ci> 3847e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 3848e41f4b71Sopenharmony_ci 3849e41f4b71Sopenharmony_ci### pause<sup>10+</sup> 3850e41f4b71Sopenharmony_ci 3851e41f4b71Sopenharmony_cipause(callback: AsyncCallback<void>): void 3852e41f4b71Sopenharmony_ci 3853e41f4b71Sopenharmony_ci暂停任务,可以暂停正在等待/正在运行/正在重试的任务。使用callback异步回调。 3854e41f4b71Sopenharmony_ci 3855e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3856e41f4b71Sopenharmony_ci 3857e41f4b71Sopenharmony_ci**参数:** 3858e41f4b71Sopenharmony_ci 3859e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3860e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3861e41f4b71Sopenharmony_ci | callback | function | 是 | 回调函数。当暂停任务成功,err为undefined,否则为错误对象。 | 3862e41f4b71Sopenharmony_ci 3863e41f4b71Sopenharmony_ci**错误码:** 3864e41f4b71Sopenharmony_ci 3865e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)。 3866e41f4b71Sopenharmony_ci 3867e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3868e41f4b71Sopenharmony_ci | -------- | -------- | 3869e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 3870e41f4b71Sopenharmony_ci | 21900007 | task state error. | 3871e41f4b71Sopenharmony_ci 3872e41f4b71Sopenharmony_ci**示例:** 3873e41f4b71Sopenharmony_ci 3874e41f4b71Sopenharmony_ci ```ts 3875e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3876e41f4b71Sopenharmony_ci 3877e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3878e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 3879e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3880e41f4b71Sopenharmony_ci title: 'taskPauseTest', 3881e41f4b71Sopenharmony_ci description: 'Sample code for pause the download task', 3882e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 3883e41f4b71Sopenharmony_ci overwrite: false, 3884e41f4b71Sopenharmony_ci method: "GET", 3885e41f4b71Sopenharmony_ci data: "", 3886e41f4b71Sopenharmony_ci saveas: "./", 3887e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3888e41f4b71Sopenharmony_ci metered: false, 3889e41f4b71Sopenharmony_ci roaming: true, 3890e41f4b71Sopenharmony_ci retry: true, 3891e41f4b71Sopenharmony_ci redirect: true, 3892e41f4b71Sopenharmony_ci index: 0, 3893e41f4b71Sopenharmony_ci begins: 0, 3894e41f4b71Sopenharmony_ci ends: -1, 3895e41f4b71Sopenharmony_ci gauge: false, 3896e41f4b71Sopenharmony_ci precise: false, 3897e41f4b71Sopenharmony_ci token: "it is a secret" 3898e41f4b71Sopenharmony_ci }; 3899e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3900e41f4b71Sopenharmony_ci task.start(); 3901e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 3902e41f4b71Sopenharmony_ci task.pause((err: BusinessError) => { 3903e41f4b71Sopenharmony_ci if (err) { 3904e41f4b71Sopenharmony_ci console.error(`Failed to pause the download task, Code: ${err.code}, message: ${err.message}`); 3905e41f4b71Sopenharmony_ci return; 3906e41f4b71Sopenharmony_ci } 3907e41f4b71Sopenharmony_ci console.info(`Succeeded in pausing a download task. `); 3908e41f4b71Sopenharmony_ci }); 3909e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 3910e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3911e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 3912e41f4b71Sopenharmony_ci }); 3913e41f4b71Sopenharmony_ci ``` 3914e41f4b71Sopenharmony_ci 3915e41f4b71Sopenharmony_ci### pause<sup>10+</sup> 3916e41f4b71Sopenharmony_ci 3917e41f4b71Sopenharmony_cipause(): Promise<void> 3918e41f4b71Sopenharmony_ci 3919e41f4b71Sopenharmony_ci暂停任务,可以暂停正在等待/正在运行/正在重试的任务。使用Promise异步回调。 3920e41f4b71Sopenharmony_ci 3921e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3922e41f4b71Sopenharmony_ci 3923e41f4b71Sopenharmony_ci**返回值:** 3924e41f4b71Sopenharmony_ci 3925e41f4b71Sopenharmony_ci| 类型 | 说明 | 3926e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 3927e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。无返回结果的Promise对象。 | 3928e41f4b71Sopenharmony_ci 3929e41f4b71Sopenharmony_ci**错误码:** 3930e41f4b71Sopenharmony_ci 3931e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)。 3932e41f4b71Sopenharmony_ci 3933e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 3934e41f4b71Sopenharmony_ci | -------- | -------- | 3935e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 3936e41f4b71Sopenharmony_ci | 21900007 | task state error. | 3937e41f4b71Sopenharmony_ci 3938e41f4b71Sopenharmony_ci**示例:** 3939e41f4b71Sopenharmony_ci 3940e41f4b71Sopenharmony_ci ```ts 3941e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 3942e41f4b71Sopenharmony_ci 3943e41f4b71Sopenharmony_ci let config: request.agent.Config = { 3944e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 3945e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 3946e41f4b71Sopenharmony_ci title: 'taskPauseTest', 3947e41f4b71Sopenharmony_ci description: 'Sample code for pause the download task', 3948e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 3949e41f4b71Sopenharmony_ci overwrite: false, 3950e41f4b71Sopenharmony_ci method: "GET", 3951e41f4b71Sopenharmony_ci data: "", 3952e41f4b71Sopenharmony_ci saveas: "./", 3953e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 3954e41f4b71Sopenharmony_ci metered: false, 3955e41f4b71Sopenharmony_ci roaming: true, 3956e41f4b71Sopenharmony_ci retry: true, 3957e41f4b71Sopenharmony_ci redirect: true, 3958e41f4b71Sopenharmony_ci index: 0, 3959e41f4b71Sopenharmony_ci begins: 0, 3960e41f4b71Sopenharmony_ci ends: -1, 3961e41f4b71Sopenharmony_ci gauge: false, 3962e41f4b71Sopenharmony_ci precise: false, 3963e41f4b71Sopenharmony_ci token: "it is a secret" 3964e41f4b71Sopenharmony_ci }; 3965e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 3966e41f4b71Sopenharmony_ci task.start(); 3967e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 3968e41f4b71Sopenharmony_ci task.pause().then(() => { 3969e41f4b71Sopenharmony_ci console.info(`Succeeded in pausing a download task. `); 3970e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3971e41f4b71Sopenharmony_ci console.error(`Failed to pause the upload task, Code: ${err.code}, message: ${err.message}`); 3972e41f4b71Sopenharmony_ci }); 3973e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 3974e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3975e41f4b71Sopenharmony_ci console.error(`Failed to create a upload task, Code: ${err.code}, message: ${err.message}`); 3976e41f4b71Sopenharmony_ci }); 3977e41f4b71Sopenharmony_ci ``` 3978e41f4b71Sopenharmony_ci 3979e41f4b71Sopenharmony_ci### resume<sup>10+</sup> 3980e41f4b71Sopenharmony_ci 3981e41f4b71Sopenharmony_ciresume(callback: AsyncCallback<void>): void 3982e41f4b71Sopenharmony_ci 3983e41f4b71Sopenharmony_ci重新启动任务,可以恢复暂停的任务。使用callback异步回调。 3984e41f4b71Sopenharmony_ci 3985e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 3986e41f4b71Sopenharmony_ci 3987e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 3988e41f4b71Sopenharmony_ci 3989e41f4b71Sopenharmony_ci**参数:** 3990e41f4b71Sopenharmony_ci 3991e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 3992e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 3993e41f4b71Sopenharmony_ci | callback | function | 是 | 回调函数。当重新启动任务成功,err为undefined,否则为错误对象。 | 3994e41f4b71Sopenharmony_ci 3995e41f4b71Sopenharmony_ci**错误码:** 3996e41f4b71Sopenharmony_ci 3997e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 3998e41f4b71Sopenharmony_ci 3999e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4000e41f4b71Sopenharmony_ci | -------- | -------- | 4001e41f4b71Sopenharmony_ci | 201 | Permission denied. | 4002e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4003e41f4b71Sopenharmony_ci | 21900007 | task state error. | 4004e41f4b71Sopenharmony_ci 4005e41f4b71Sopenharmony_ci**示例:** 4006e41f4b71Sopenharmony_ci 4007e41f4b71Sopenharmony_ci ```ts 4008e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4009e41f4b71Sopenharmony_ci 4010e41f4b71Sopenharmony_ci let config: request.agent.Config = { 4011e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 4012e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 4013e41f4b71Sopenharmony_ci title: 'taskResumeTest', 4014e41f4b71Sopenharmony_ci description: 'Sample code for resume the download task', 4015e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 4016e41f4b71Sopenharmony_ci overwrite: false, 4017e41f4b71Sopenharmony_ci method: "GET", 4018e41f4b71Sopenharmony_ci data: "", 4019e41f4b71Sopenharmony_ci saveas: "./", 4020e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 4021e41f4b71Sopenharmony_ci metered: false, 4022e41f4b71Sopenharmony_ci roaming: true, 4023e41f4b71Sopenharmony_ci retry: true, 4024e41f4b71Sopenharmony_ci redirect: true, 4025e41f4b71Sopenharmony_ci index: 0, 4026e41f4b71Sopenharmony_ci begins: 0, 4027e41f4b71Sopenharmony_ci ends: -1, 4028e41f4b71Sopenharmony_ci gauge: false, 4029e41f4b71Sopenharmony_ci precise: false, 4030e41f4b71Sopenharmony_ci token: "it is a secret" 4031e41f4b71Sopenharmony_ci }; 4032e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 4033e41f4b71Sopenharmony_ci task.start(); 4034e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 4035e41f4b71Sopenharmony_ci task.pause(); 4036e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 4037e41f4b71Sopenharmony_ci task.resume((err: BusinessError) => { 4038e41f4b71Sopenharmony_ci if (err) { 4039e41f4b71Sopenharmony_ci console.error(`Failed to resume the download task, Code: ${err.code}, message: ${err.message}`); 4040e41f4b71Sopenharmony_ci return; 4041e41f4b71Sopenharmony_ci } 4042e41f4b71Sopenharmony_ci console.info(`Succeeded in resuming a download task. `); 4043e41f4b71Sopenharmony_ci }); 4044e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 4045e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4046e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 4047e41f4b71Sopenharmony_ci }); 4048e41f4b71Sopenharmony_ci ``` 4049e41f4b71Sopenharmony_ci 4050e41f4b71Sopenharmony_ci### resume<sup>10+</sup> 4051e41f4b71Sopenharmony_ci 4052e41f4b71Sopenharmony_ciresume(): Promise<void> 4053e41f4b71Sopenharmony_ci 4054e41f4b71Sopenharmony_ci重新启动任务,可以恢复暂停的任务。使用Promise异步回调。 4055e41f4b71Sopenharmony_ci 4056e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 4057e41f4b71Sopenharmony_ci 4058e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4059e41f4b71Sopenharmony_ci 4060e41f4b71Sopenharmony_ci**返回值:** 4061e41f4b71Sopenharmony_ci 4062e41f4b71Sopenharmony_ci| 类型 | 说明 | 4063e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4064e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。无返回结果的Promise对象。 | 4065e41f4b71Sopenharmony_ci 4066e41f4b71Sopenharmony_ci**错误码:** 4067e41f4b71Sopenharmony_ci 4068e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4069e41f4b71Sopenharmony_ci 4070e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4071e41f4b71Sopenharmony_ci | -------- | -------- | 4072e41f4b71Sopenharmony_ci | 201 | Permission denied. | 4073e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4074e41f4b71Sopenharmony_ci | 21900007 | task state error. | 4075e41f4b71Sopenharmony_ci 4076e41f4b71Sopenharmony_ci**示例:** 4077e41f4b71Sopenharmony_ci 4078e41f4b71Sopenharmony_ci ```ts 4079e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4080e41f4b71Sopenharmony_ci 4081e41f4b71Sopenharmony_ci let config: request.agent.Config = { 4082e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 4083e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 4084e41f4b71Sopenharmony_ci title: 'taskResumeTest', 4085e41f4b71Sopenharmony_ci description: 'Sample code for resume the download task', 4086e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 4087e41f4b71Sopenharmony_ci overwrite: false, 4088e41f4b71Sopenharmony_ci method: "GET", 4089e41f4b71Sopenharmony_ci data: "", 4090e41f4b71Sopenharmony_ci saveas: "./", 4091e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 4092e41f4b71Sopenharmony_ci metered: false, 4093e41f4b71Sopenharmony_ci roaming: true, 4094e41f4b71Sopenharmony_ci retry: true, 4095e41f4b71Sopenharmony_ci redirect: true, 4096e41f4b71Sopenharmony_ci index: 0, 4097e41f4b71Sopenharmony_ci begins: 0, 4098e41f4b71Sopenharmony_ci ends: -1, 4099e41f4b71Sopenharmony_ci gauge: false, 4100e41f4b71Sopenharmony_ci precise: false, 4101e41f4b71Sopenharmony_ci token: "it is a secret" 4102e41f4b71Sopenharmony_ci }; 4103e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 4104e41f4b71Sopenharmony_ci task.start(); 4105e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 4106e41f4b71Sopenharmony_ci task.pause(); 4107e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 4108e41f4b71Sopenharmony_ci task.resume().then(() => { 4109e41f4b71Sopenharmony_ci console.info(`Succeeded in resuming a download task. `); 4110e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4111e41f4b71Sopenharmony_ci console.error(`Failed to resume the download task, Code: ${err.code}, message: ${err.message}`); 4112e41f4b71Sopenharmony_ci }); 4113e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 4114e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4115e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 4116e41f4b71Sopenharmony_ci }); 4117e41f4b71Sopenharmony_ci ``` 4118e41f4b71Sopenharmony_ci 4119e41f4b71Sopenharmony_ci### stop<sup>10+</sup> 4120e41f4b71Sopenharmony_ci 4121e41f4b71Sopenharmony_cistop(callback: AsyncCallback<void>): void 4122e41f4b71Sopenharmony_ci 4123e41f4b71Sopenharmony_ci停止任务,可以停止正在运行/正在等待/正在重试的任务。使用callback异步回调。 4124e41f4b71Sopenharmony_ci 4125e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4126e41f4b71Sopenharmony_ci 4127e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4128e41f4b71Sopenharmony_ci 4129e41f4b71Sopenharmony_ci**参数:** 4130e41f4b71Sopenharmony_ci 4131e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4132e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4133e41f4b71Sopenharmony_ci | callback | function | 是 | 回调函数。当停止任务成功,err为undefined,否则为错误对象。 | 4134e41f4b71Sopenharmony_ci 4135e41f4b71Sopenharmony_ci**错误码:** 4136e41f4b71Sopenharmony_ci 4137e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)。 4138e41f4b71Sopenharmony_ci 4139e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4140e41f4b71Sopenharmony_ci | -------- | -------- | 4141e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4142e41f4b71Sopenharmony_ci | 21900007 | task state error. | 4143e41f4b71Sopenharmony_ci 4144e41f4b71Sopenharmony_ci**示例:** 4145e41f4b71Sopenharmony_ci 4146e41f4b71Sopenharmony_ci ```ts 4147e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4148e41f4b71Sopenharmony_ci 4149e41f4b71Sopenharmony_ci let config: request.agent.Config = { 4150e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 4151e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 4152e41f4b71Sopenharmony_ci title: 'taskStopTest', 4153e41f4b71Sopenharmony_ci description: 'Sample code for stop the download task', 4154e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 4155e41f4b71Sopenharmony_ci overwrite: false, 4156e41f4b71Sopenharmony_ci method: "GET", 4157e41f4b71Sopenharmony_ci data: "", 4158e41f4b71Sopenharmony_ci saveas: "./", 4159e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 4160e41f4b71Sopenharmony_ci metered: false, 4161e41f4b71Sopenharmony_ci roaming: true, 4162e41f4b71Sopenharmony_ci retry: true, 4163e41f4b71Sopenharmony_ci redirect: true, 4164e41f4b71Sopenharmony_ci index: 0, 4165e41f4b71Sopenharmony_ci begins: 0, 4166e41f4b71Sopenharmony_ci ends: -1, 4167e41f4b71Sopenharmony_ci gauge: false, 4168e41f4b71Sopenharmony_ci precise: false, 4169e41f4b71Sopenharmony_ci token: "it is a secret" 4170e41f4b71Sopenharmony_ci }; 4171e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 4172e41f4b71Sopenharmony_ci task.start(); 4173e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 4174e41f4b71Sopenharmony_ci task.stop((err: BusinessError) => { 4175e41f4b71Sopenharmony_ci if (err) { 4176e41f4b71Sopenharmony_ci console.error(`Failed to stop the download task, Code: ${err.code}, message: ${err.message}`); 4177e41f4b71Sopenharmony_ci return; 4178e41f4b71Sopenharmony_ci } 4179e41f4b71Sopenharmony_ci console.info(`Succeeded in stopping a download task. `); 4180e41f4b71Sopenharmony_ci }); 4181e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 4182e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4183e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 4184e41f4b71Sopenharmony_ci }); 4185e41f4b71Sopenharmony_ci ``` 4186e41f4b71Sopenharmony_ci 4187e41f4b71Sopenharmony_ci 4188e41f4b71Sopenharmony_ci### stop<sup>10+</sup> 4189e41f4b71Sopenharmony_ci 4190e41f4b71Sopenharmony_cistop(): Promise<void> 4191e41f4b71Sopenharmony_ci 4192e41f4b71Sopenharmony_ci停止任务,可以停止正在运行/正在等待/正在重试的任务。使用Promise异步回调。 4193e41f4b71Sopenharmony_ci 4194e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4195e41f4b71Sopenharmony_ci 4196e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4197e41f4b71Sopenharmony_ci 4198e41f4b71Sopenharmony_ci**返回值:** 4199e41f4b71Sopenharmony_ci 4200e41f4b71Sopenharmony_ci| 类型 | 说明 | 4201e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4202e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。无返回结果的Promise对象。 | 4203e41f4b71Sopenharmony_ci 4204e41f4b71Sopenharmony_ci**错误码:** 4205e41f4b71Sopenharmony_ci 4206e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)。 4207e41f4b71Sopenharmony_ci 4208e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4209e41f4b71Sopenharmony_ci | -------- | -------- | 4210e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4211e41f4b71Sopenharmony_ci | 21900007 | task state error. | 4212e41f4b71Sopenharmony_ci 4213e41f4b71Sopenharmony_ci**示例:** 4214e41f4b71Sopenharmony_ci 4215e41f4b71Sopenharmony_ci ```ts 4216e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4217e41f4b71Sopenharmony_ci 4218e41f4b71Sopenharmony_ci let config: request.agent.Config = { 4219e41f4b71Sopenharmony_ci action: request.agent.Action.DOWNLOAD, 4220e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 4221e41f4b71Sopenharmony_ci title: 'taskStopTest', 4222e41f4b71Sopenharmony_ci description: 'Sample code for stop the download task', 4223e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 4224e41f4b71Sopenharmony_ci overwrite: false, 4225e41f4b71Sopenharmony_ci method: "GET", 4226e41f4b71Sopenharmony_ci data: "", 4227e41f4b71Sopenharmony_ci saveas: "./", 4228e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 4229e41f4b71Sopenharmony_ci metered: false, 4230e41f4b71Sopenharmony_ci roaming: true, 4231e41f4b71Sopenharmony_ci retry: true, 4232e41f4b71Sopenharmony_ci redirect: true, 4233e41f4b71Sopenharmony_ci index: 0, 4234e41f4b71Sopenharmony_ci begins: 0, 4235e41f4b71Sopenharmony_ci ends: -1, 4236e41f4b71Sopenharmony_ci gauge: false, 4237e41f4b71Sopenharmony_ci precise: false, 4238e41f4b71Sopenharmony_ci token: "it is a secret" 4239e41f4b71Sopenharmony_ci }; 4240e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 4241e41f4b71Sopenharmony_ci task.start(); 4242e41f4b71Sopenharmony_ci for(let t = Date.now(); Date.now() - t <= 1000;); // 等待1秒再执行下一步操作,以防异步乱序 4243e41f4b71Sopenharmony_ci task.stop().then(() => { 4244e41f4b71Sopenharmony_ci console.info(`Succeeded in stopping a download task. `); 4245e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4246e41f4b71Sopenharmony_ci console.error(`Failed to stop the download task, Code: ${err.code}, message: ${err.message}`); 4247e41f4b71Sopenharmony_ci }); 4248e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.tid}`); 4249e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4250e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 4251e41f4b71Sopenharmony_ci }); 4252e41f4b71Sopenharmony_ci ``` 4253e41f4b71Sopenharmony_ci 4254e41f4b71Sopenharmony_ci## request.agent.create<sup>10+</sup> 4255e41f4b71Sopenharmony_ci 4256e41f4b71Sopenharmony_cicreate(context: BaseContext, config: Config, callback: AsyncCallback<Task>): void 4257e41f4b71Sopenharmony_ci 4258e41f4b71Sopenharmony_ci创建要上传或下载的任务,并将其排入队列。使用callback异步回调。 4259e41f4b71Sopenharmony_ci 4260e41f4b71Sopenharmony_ci 4261e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 4262e41f4b71Sopenharmony_ci 4263e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4264e41f4b71Sopenharmony_ci 4265e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4266e41f4b71Sopenharmony_ci 4267e41f4b71Sopenharmony_ci**参数:** 4268e41f4b71Sopenharmony_ci 4269e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4270e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4271e41f4b71Sopenharmony_ci | config | [Config](#config10) | 是 | 上传/下载任务的配置信息。 | 4272e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 4273e41f4b71Sopenharmony_ci | callback | AsyncCallback<[Task](#task10)> | 是 | 回调函数。当创建上传或下载任务成功,err为undefined,data为获取到的Task对象;否则为错误对象。 | 4274e41f4b71Sopenharmony_ci 4275e41f4b71Sopenharmony_ci**错误码:** 4276e41f4b71Sopenharmony_ci 4277e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4278e41f4b71Sopenharmony_ci 4279e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4280e41f4b71Sopenharmony_ci | -------- | -------- | 4281e41f4b71Sopenharmony_ci | 201 | permission denied. | 4282e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 4283e41f4b71Sopenharmony_ci | 13400001 | file operation error. | 4284e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4285e41f4b71Sopenharmony_ci | 21900004 | the application task queue is full. | 4286e41f4b71Sopenharmony_ci | 21900005 | task mode error. | 4287e41f4b71Sopenharmony_ci 4288e41f4b71Sopenharmony_ci**示例:** 4289e41f4b71Sopenharmony_ci 4290e41f4b71Sopenharmony_ci ```ts 4291e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4292e41f4b71Sopenharmony_ci 4293e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 4294e41f4b71Sopenharmony_ci name: "createTest", 4295e41f4b71Sopenharmony_ci value: { 4296e41f4b71Sopenharmony_ci filename: "createTest.avi", 4297e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 4298e41f4b71Sopenharmony_ci path: "./createTest.avi", 4299e41f4b71Sopenharmony_ci } 4300e41f4b71Sopenharmony_ci }]; 4301e41f4b71Sopenharmony_ci let config: request.agent.Config = { 4302e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 4303e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 4304e41f4b71Sopenharmony_ci title: 'createTest', 4305e41f4b71Sopenharmony_ci description: 'Sample code for create task', 4306e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 4307e41f4b71Sopenharmony_ci overwrite: false, 4308e41f4b71Sopenharmony_ci method: "PUT", 4309e41f4b71Sopenharmony_ci data: attachments, 4310e41f4b71Sopenharmony_ci saveas: "./", 4311e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 4312e41f4b71Sopenharmony_ci metered: false, 4313e41f4b71Sopenharmony_ci roaming: true, 4314e41f4b71Sopenharmony_ci retry: true, 4315e41f4b71Sopenharmony_ci redirect: true, 4316e41f4b71Sopenharmony_ci index: 0, 4317e41f4b71Sopenharmony_ci begins: 0, 4318e41f4b71Sopenharmony_ci ends: -1, 4319e41f4b71Sopenharmony_ci gauge: false, 4320e41f4b71Sopenharmony_ci precise: false, 4321e41f4b71Sopenharmony_ci token: "it is a secret" 4322e41f4b71Sopenharmony_ci }; 4323e41f4b71Sopenharmony_ci request.agent.create(getContext(), config, (err: BusinessError, task: request.agent.Task) => { 4324e41f4b71Sopenharmony_ci if (err) { 4325e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 4326e41f4b71Sopenharmony_ci return; 4327e41f4b71Sopenharmony_ci } 4328e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.config}`); 4329e41f4b71Sopenharmony_ci task.start(); 4330e41f4b71Sopenharmony_ci }); 4331e41f4b71Sopenharmony_ci ``` 4332e41f4b71Sopenharmony_ci 4333e41f4b71Sopenharmony_ci> **说明:** 4334e41f4b71Sopenharmony_ci> 4335e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 4336e41f4b71Sopenharmony_ci 4337e41f4b71Sopenharmony_ci## request.agent.create<sup>10+</sup> 4338e41f4b71Sopenharmony_ci 4339e41f4b71Sopenharmony_cicreate(context: BaseContext, config: Config): Promise<Task> 4340e41f4b71Sopenharmony_ci 4341e41f4b71Sopenharmony_ci创建要上传或下载的任务,并将其排入队列。使用Promise异步回调。 4342e41f4b71Sopenharmony_ci 4343e41f4b71Sopenharmony_ci 4344e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.INTERNET 4345e41f4b71Sopenharmony_ci 4346e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4347e41f4b71Sopenharmony_ci 4348e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4349e41f4b71Sopenharmony_ci 4350e41f4b71Sopenharmony_ci**参数:** 4351e41f4b71Sopenharmony_ci 4352e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4353e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4354e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 4355e41f4b71Sopenharmony_ci | config | [Config](#config10) | 是 | 上传/下载任务的配置信息。 | 4356e41f4b71Sopenharmony_ci 4357e41f4b71Sopenharmony_ci**返回值:** 4358e41f4b71Sopenharmony_ci 4359e41f4b71Sopenharmony_ci| 类型 | 说明 | 4360e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4361e41f4b71Sopenharmony_ci| Promise<[Task](#task10)> | Promise对象。返回任务配置信息的Promise对象。 | 4362e41f4b71Sopenharmony_ci 4363e41f4b71Sopenharmony_ci**错误码:** 4364e41f4b71Sopenharmony_ci 4365e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4366e41f4b71Sopenharmony_ci 4367e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4368e41f4b71Sopenharmony_ci | -------- | -------- | 4369e41f4b71Sopenharmony_ci | 201 | permission denied. | 4370e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 4371e41f4b71Sopenharmony_ci | 13400001 | file operation error. | 4372e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4373e41f4b71Sopenharmony_ci | 21900004 | the application task queue is full. | 4374e41f4b71Sopenharmony_ci | 21900005 | task mode error. | 4375e41f4b71Sopenharmony_ci 4376e41f4b71Sopenharmony_ci**示例:** 4377e41f4b71Sopenharmony_ci 4378e41f4b71Sopenharmony_ci ```ts 4379e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4380e41f4b71Sopenharmony_ci 4381e41f4b71Sopenharmony_ci let attachments: Array<request.agent.FormItem> = [{ 4382e41f4b71Sopenharmony_ci name: "createTest", 4383e41f4b71Sopenharmony_ci value: { 4384e41f4b71Sopenharmony_ci filename: "createTest.avi", 4385e41f4b71Sopenharmony_ci mimeType: "application/octet-stream", 4386e41f4b71Sopenharmony_ci path: "./createTest.avi", 4387e41f4b71Sopenharmony_ci } 4388e41f4b71Sopenharmony_ci }]; 4389e41f4b71Sopenharmony_ci let config: request.agent.Config = { 4390e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 4391e41f4b71Sopenharmony_ci url: 'http://127.0.0.1', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址 4392e41f4b71Sopenharmony_ci title: 'createTest', 4393e41f4b71Sopenharmony_ci description: 'Sample code for create task', 4394e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND, 4395e41f4b71Sopenharmony_ci overwrite: false, 4396e41f4b71Sopenharmony_ci method: "PUT", 4397e41f4b71Sopenharmony_ci data: attachments, 4398e41f4b71Sopenharmony_ci saveas: "./", 4399e41f4b71Sopenharmony_ci network: request.agent.Network.CELLULAR, 4400e41f4b71Sopenharmony_ci metered: false, 4401e41f4b71Sopenharmony_ci roaming: true, 4402e41f4b71Sopenharmony_ci retry: true, 4403e41f4b71Sopenharmony_ci redirect: true, 4404e41f4b71Sopenharmony_ci index: 0, 4405e41f4b71Sopenharmony_ci begins: 0, 4406e41f4b71Sopenharmony_ci ends: -1, 4407e41f4b71Sopenharmony_ci gauge: false, 4408e41f4b71Sopenharmony_ci precise: false, 4409e41f4b71Sopenharmony_ci token: "it is a secret" 4410e41f4b71Sopenharmony_ci }; 4411e41f4b71Sopenharmony_ci request.agent.create(getContext(), config).then((task: request.agent.Task) => { 4412e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task. result: ${task.config}`); 4413e41f4b71Sopenharmony_ci task.start(); 4414e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4415e41f4b71Sopenharmony_ci console.error(`Failed to create a download task, Code: ${err.code}, message: ${err.message}`); 4416e41f4b71Sopenharmony_ci }); 4417e41f4b71Sopenharmony_ci ``` 4418e41f4b71Sopenharmony_ci 4419e41f4b71Sopenharmony_ci> **说明:** 4420e41f4b71Sopenharmony_ci> 4421e41f4b71Sopenharmony_ci> 示例中context的获取方式请参见[获取UIAbility的上下文信息](../../application-models/uiability-usage.md#获取uiability的上下文信息)。 4422e41f4b71Sopenharmony_ci 4423e41f4b71Sopenharmony_ci## request.agent.getTask<sup>11+</sup> 4424e41f4b71Sopenharmony_ci 4425e41f4b71Sopenharmony_cigetTask(context: BaseContext, id: string, token?: string): Promise<Task> 4426e41f4b71Sopenharmony_ci 4427e41f4b71Sopenharmony_ci根据任务id查询任务。使用Promise异步回调。 4428e41f4b71Sopenharmony_ci 4429e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4430e41f4b71Sopenharmony_ci 4431e41f4b71Sopenharmony_ci**参数:** 4432e41f4b71Sopenharmony_ci 4433e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4434e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4435e41f4b71Sopenharmony_ci | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 | 4436e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4437e41f4b71Sopenharmony_ci | token | string | 否 | 任务查询token。 | 4438e41f4b71Sopenharmony_ci 4439e41f4b71Sopenharmony_ci**返回值:** 4440e41f4b71Sopenharmony_ci 4441e41f4b71Sopenharmony_ci| 类型 | 说明 | 4442e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4443e41f4b71Sopenharmony_ci| Promise<[Task](#task10)> | Promise对象。返回任务配置信息的Promise对象。 | 4444e41f4b71Sopenharmony_ci 4445e41f4b71Sopenharmony_ci**错误码:** 4446e41f4b71Sopenharmony_ci 4447e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4448e41f4b71Sopenharmony_ci 4449e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4450e41f4b71Sopenharmony_ci | -------- | -------- | 4451e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 4452e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4453e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4454e41f4b71Sopenharmony_ci 4455e41f4b71Sopenharmony_ci**示例:** 4456e41f4b71Sopenharmony_ci 4457e41f4b71Sopenharmony_ci ```ts 4458e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4459e41f4b71Sopenharmony_ci 4460e41f4b71Sopenharmony_ci request.agent.getTask(getContext(), "123456").then((task: request.agent.Task) => { 4461e41f4b71Sopenharmony_ci console.info(`Succeeded in querying a upload task. result: ${task.tid}`); 4462e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4463e41f4b71Sopenharmony_ci console.error(`Failed to query a upload task, Code: ${err.code}, message: ${err.message}`); 4464e41f4b71Sopenharmony_ci }); 4465e41f4b71Sopenharmony_ci ``` 4466e41f4b71Sopenharmony_ci 4467e41f4b71Sopenharmony_ci## request.agent.remove<sup>10+</sup> 4468e41f4b71Sopenharmony_ci 4469e41f4b71Sopenharmony_ciremove(id: string, callback: AsyncCallback<void>): void 4470e41f4b71Sopenharmony_ci 4471e41f4b71Sopenharmony_ci移除属于调用方的指定任务,如果正在处理中,该任务将被迫停止。使用callback异步回调。 4472e41f4b71Sopenharmony_ci 4473e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4474e41f4b71Sopenharmony_ci 4475e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4476e41f4b71Sopenharmony_ci 4477e41f4b71Sopenharmony_ci**参数:** 4478e41f4b71Sopenharmony_ci 4479e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4480e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4481e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4482e41f4b71Sopenharmony_ci | callback | AsyncCallback<void> | 是 | 回调函数。当删除指定任务成功,err为undefined,否则为错误对象。 | 4483e41f4b71Sopenharmony_ci 4484e41f4b71Sopenharmony_ci**错误码:** 4485e41f4b71Sopenharmony_ci 4486e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4487e41f4b71Sopenharmony_ci 4488e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4489e41f4b71Sopenharmony_ci | -------- | -------- | 4490e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type | 4491e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4492e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4493e41f4b71Sopenharmony_ci 4494e41f4b71Sopenharmony_ci**示例:** 4495e41f4b71Sopenharmony_ci 4496e41f4b71Sopenharmony_ci ```ts 4497e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4498e41f4b71Sopenharmony_ci 4499e41f4b71Sopenharmony_ci request.agent.remove("123456", (err: BusinessError) => { 4500e41f4b71Sopenharmony_ci if (err) { 4501e41f4b71Sopenharmony_ci console.error(`Failed to removing a download task, Code: ${err.code}, message: ${err.message}`); 4502e41f4b71Sopenharmony_ci return; 4503e41f4b71Sopenharmony_ci } 4504e41f4b71Sopenharmony_ci console.info(`Succeeded in creating a download task.`); 4505e41f4b71Sopenharmony_ci }); 4506e41f4b71Sopenharmony_ci ``` 4507e41f4b71Sopenharmony_ci 4508e41f4b71Sopenharmony_ci 4509e41f4b71Sopenharmony_ci## request.agent.remove<sup>10+</sup> 4510e41f4b71Sopenharmony_ci 4511e41f4b71Sopenharmony_ciremove(id: string): Promise<void> 4512e41f4b71Sopenharmony_ci 4513e41f4b71Sopenharmony_ci移除属于调用方的指定任务,如果正在处理中,该任务将被迫停止,使用Promise异步回调。 4514e41f4b71Sopenharmony_ci 4515e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4516e41f4b71Sopenharmony_ci 4517e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4518e41f4b71Sopenharmony_ci 4519e41f4b71Sopenharmony_ci**参数:** 4520e41f4b71Sopenharmony_ci 4521e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4522e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4523e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4524e41f4b71Sopenharmony_ci 4525e41f4b71Sopenharmony_ci**返回值:** 4526e41f4b71Sopenharmony_ci 4527e41f4b71Sopenharmony_ci| 类型 | 说明 | 4528e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4529e41f4b71Sopenharmony_ci| Promise<void> | Promise对象。无返回结果的Promise对象。 | 4530e41f4b71Sopenharmony_ci 4531e41f4b71Sopenharmony_ci**错误码:** 4532e41f4b71Sopenharmony_ci 4533e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4534e41f4b71Sopenharmony_ci 4535e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4536e41f4b71Sopenharmony_ci | -------- | -------- | 4537e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type | 4538e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4539e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4540e41f4b71Sopenharmony_ci 4541e41f4b71Sopenharmony_ci**示例:** 4542e41f4b71Sopenharmony_ci 4543e41f4b71Sopenharmony_ci ```ts 4544e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4545e41f4b71Sopenharmony_ci 4546e41f4b71Sopenharmony_ci request.agent.remove("123456").then(() => { 4547e41f4b71Sopenharmony_ci console.info(`Succeeded in removing a download task. `); 4548e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4549e41f4b71Sopenharmony_ci console.error(`Failed to remove a download task, Code: ${err.code}, message: ${err.message}`); 4550e41f4b71Sopenharmony_ci }); 4551e41f4b71Sopenharmony_ci ``` 4552e41f4b71Sopenharmony_ci 4553e41f4b71Sopenharmony_ci 4554e41f4b71Sopenharmony_ci## request.agent.show<sup>10+</sup> 4555e41f4b71Sopenharmony_ci 4556e41f4b71Sopenharmony_cishow(id: string, callback: AsyncCallback<TaskInfo>): void 4557e41f4b71Sopenharmony_ci 4558e41f4b71Sopenharmony_ci根据任务id查询任务的详细信息。使用callback异步回调。 4559e41f4b71Sopenharmony_ci 4560e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4561e41f4b71Sopenharmony_ci 4562e41f4b71Sopenharmony_ci**参数:** 4563e41f4b71Sopenharmony_ci 4564e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4565e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4566e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4567e41f4b71Sopenharmony_ci | callback | AsyncCallback<[TaskInfo](#taskinfo10)> | 是 | 回调函数。当查询任务操作成功,err为undefined,data为查询到的任务TaskInfo信息;否则为错误对象。 | 4568e41f4b71Sopenharmony_ci 4569e41f4b71Sopenharmony_ci**错误码:** 4570e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4571e41f4b71Sopenharmony_ci 4572e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4573e41f4b71Sopenharmony_ci | -------- | -------- | 4574e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type | 4575e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4576e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4577e41f4b71Sopenharmony_ci 4578e41f4b71Sopenharmony_ci**示例:** 4579e41f4b71Sopenharmony_ci 4580e41f4b71Sopenharmony_ci ```ts 4581e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4582e41f4b71Sopenharmony_ci 4583e41f4b71Sopenharmony_ci request.agent.show("123456", (err: BusinessError, taskInfo: request.agent.TaskInfo) => { 4584e41f4b71Sopenharmony_ci if (err) { 4585e41f4b71Sopenharmony_ci console.error(`Failed to show a upload task, Code: ${err.code}, message: ${err.message}`); 4586e41f4b71Sopenharmony_ci return; 4587e41f4b71Sopenharmony_ci } 4588e41f4b71Sopenharmony_ci console.info(`Succeeded in showing a upload task.`); 4589e41f4b71Sopenharmony_ci }); 4590e41f4b71Sopenharmony_ci ``` 4591e41f4b71Sopenharmony_ci 4592e41f4b71Sopenharmony_ci 4593e41f4b71Sopenharmony_ci## request.agent.show<sup>10+</sup> 4594e41f4b71Sopenharmony_ci 4595e41f4b71Sopenharmony_cishow(id: string): Promise<TaskInfo> 4596e41f4b71Sopenharmony_ci 4597e41f4b71Sopenharmony_ci根据任务id查询任务的详细信息。使用Promise异步回调。 4598e41f4b71Sopenharmony_ci 4599e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4600e41f4b71Sopenharmony_ci 4601e41f4b71Sopenharmony_ci**参数:** 4602e41f4b71Sopenharmony_ci 4603e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4604e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4605e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4606e41f4b71Sopenharmony_ci 4607e41f4b71Sopenharmony_ci**返回值:** 4608e41f4b71Sopenharmony_ci 4609e41f4b71Sopenharmony_ci| 类型 | 说明 | 4610e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4611e41f4b71Sopenharmony_ci| Promise<[TaskInfo](#taskinfo10)> | Promise对象。返回任务详细信息TaskInfo的Promise对象。 | 4612e41f4b71Sopenharmony_ci 4613e41f4b71Sopenharmony_ci**错误码:** 4614e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4615e41f4b71Sopenharmony_ci 4616e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4617e41f4b71Sopenharmony_ci | -------- | -------- | 4618e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type | 4619e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4620e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4621e41f4b71Sopenharmony_ci 4622e41f4b71Sopenharmony_ci**示例:** 4623e41f4b71Sopenharmony_ci 4624e41f4b71Sopenharmony_ci ```ts 4625e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4626e41f4b71Sopenharmony_ci 4627e41f4b71Sopenharmony_ci request.agent.show("123456").then((taskInfo: request.agent.TaskInfo) => { 4628e41f4b71Sopenharmony_ci console.info(`Succeeded in showing a upload task.`); 4629e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4630e41f4b71Sopenharmony_ci console.error(`Failed to show a upload task, Code: ${err.code}, message: ${err.message}`); 4631e41f4b71Sopenharmony_ci }); 4632e41f4b71Sopenharmony_ci ``` 4633e41f4b71Sopenharmony_ci 4634e41f4b71Sopenharmony_ci 4635e41f4b71Sopenharmony_ci## request.agent.touch<sup>10+</sup> 4636e41f4b71Sopenharmony_ci 4637e41f4b71Sopenharmony_citouch(id: string, token: string, callback: AsyncCallback<TaskInfo>): void 4638e41f4b71Sopenharmony_ci 4639e41f4b71Sopenharmony_ci根据任务id和token查询任务的详细信息。使用callback异步回调。 4640e41f4b71Sopenharmony_ci 4641e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4642e41f4b71Sopenharmony_ci 4643e41f4b71Sopenharmony_ci**参数:** 4644e41f4b71Sopenharmony_ci 4645e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4646e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4647e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4648e41f4b71Sopenharmony_ci | token | string | 是 | 任务查询token。 | 4649e41f4b71Sopenharmony_ci | callback | AsyncCallback<[TaskInfo](#taskinfo10)> | 是 | 回调函数。当查询任务操作成功,err为undefined,data为查询到的任务TaskInfo信息;否则为错误对象。 | 4650e41f4b71Sopenharmony_ci 4651e41f4b71Sopenharmony_ci**错误码:** 4652e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4653e41f4b71Sopenharmony_ci 4654e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4655e41f4b71Sopenharmony_ci | -------- | -------- | 4656e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 4657e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4658e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4659e41f4b71Sopenharmony_ci 4660e41f4b71Sopenharmony_ci**示例:** 4661e41f4b71Sopenharmony_ci 4662e41f4b71Sopenharmony_ci ```ts 4663e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4664e41f4b71Sopenharmony_ci 4665e41f4b71Sopenharmony_ci request.agent.touch("123456", "token", (err: BusinessError, taskInfo: request.agent.TaskInfo) => { 4666e41f4b71Sopenharmony_ci if (err) { 4667e41f4b71Sopenharmony_ci console.error(`Failed to touch a upload task, Code: ${err.code}, message: ${err.message}`); 4668e41f4b71Sopenharmony_ci return; 4669e41f4b71Sopenharmony_ci } 4670e41f4b71Sopenharmony_ci console.info(`Succeeded in touching a upload task.`); 4671e41f4b71Sopenharmony_ci }); 4672e41f4b71Sopenharmony_ci ``` 4673e41f4b71Sopenharmony_ci 4674e41f4b71Sopenharmony_ci 4675e41f4b71Sopenharmony_ci## request.agent.touch<sup>10+</sup> 4676e41f4b71Sopenharmony_ci 4677e41f4b71Sopenharmony_citouch(id: string, token: string): Promise<TaskInfo> 4678e41f4b71Sopenharmony_ci 4679e41f4b71Sopenharmony_ci根据任务id和token查询任务的详细信息。使用Promise异步回调。 4680e41f4b71Sopenharmony_ci 4681e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4682e41f4b71Sopenharmony_ci 4683e41f4b71Sopenharmony_ci**参数:** 4684e41f4b71Sopenharmony_ci 4685e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4686e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4687e41f4b71Sopenharmony_ci | id | string | 是 | 任务id。 | 4688e41f4b71Sopenharmony_ci | token | string | 是 | 任务查询token。 | 4689e41f4b71Sopenharmony_ci 4690e41f4b71Sopenharmony_ci**返回值:** 4691e41f4b71Sopenharmony_ci 4692e41f4b71Sopenharmony_ci| 类型 | 说明 | 4693e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4694e41f4b71Sopenharmony_ci| Promise<[TaskInfo](#taskinfo10)> | Promise对象。返回任务详细信息TaskInfo的Promise对象。 | 4695e41f4b71Sopenharmony_ci 4696e41f4b71Sopenharmony_ci**错误码:** 4697e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4698e41f4b71Sopenharmony_ci 4699e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4700e41f4b71Sopenharmony_ci | -------- | -------- | 4701e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Missing mandatory parameters 2. Incorrect parameter type 3. Parameter verification failed | 4702e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4703e41f4b71Sopenharmony_ci | 21900006 | task not found. | 4704e41f4b71Sopenharmony_ci 4705e41f4b71Sopenharmony_ci**示例:** 4706e41f4b71Sopenharmony_ci 4707e41f4b71Sopenharmony_ci ```ts 4708e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4709e41f4b71Sopenharmony_ci 4710e41f4b71Sopenharmony_ci request.agent.touch("123456", "token").then((taskInfo: request.agent.TaskInfo) => { 4711e41f4b71Sopenharmony_ci console.info(`Succeeded in touching a upload task. `); 4712e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4713e41f4b71Sopenharmony_ci console.error(`Failed to touch a upload task, Code: ${err.code}, message: ${err.message}`); 4714e41f4b71Sopenharmony_ci }); 4715e41f4b71Sopenharmony_ci ``` 4716e41f4b71Sopenharmony_ci 4717e41f4b71Sopenharmony_ci## request.agent.search<sup>10+</sup> 4718e41f4b71Sopenharmony_ci 4719e41f4b71Sopenharmony_cisearch(callback: AsyncCallback<Array<string>>): void 4720e41f4b71Sopenharmony_ci 4721e41f4b71Sopenharmony_ci根据默认[Filter](#filter10)过滤条件查找任务id。使用callback异步回调。 4722e41f4b71Sopenharmony_ci 4723e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4724e41f4b71Sopenharmony_ci 4725e41f4b71Sopenharmony_ci**参数:** 4726e41f4b71Sopenharmony_ci 4727e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4728e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4729e41f4b71Sopenharmony_ci | callback | AsyncCallback<Array<string>> | 是 | 回调函数。当根据过滤条件查找任务成功,err为undefined,data为满足条件的任务id;否则为错误对象。 | 4730e41f4b71Sopenharmony_ci 4731e41f4b71Sopenharmony_ci**错误码:** 4732e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4733e41f4b71Sopenharmony_ci 4734e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4735e41f4b71Sopenharmony_ci | -------- | -------- | 4736e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Incorrect parameter type 2. Parameter verification failed | 4737e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4738e41f4b71Sopenharmony_ci 4739e41f4b71Sopenharmony_ci**示例:** 4740e41f4b71Sopenharmony_ci 4741e41f4b71Sopenharmony_ci ```ts 4742e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4743e41f4b71Sopenharmony_ci 4744e41f4b71Sopenharmony_ci request.agent.search((err: BusinessError, data: Array<string>) => { 4745e41f4b71Sopenharmony_ci if (err) { 4746e41f4b71Sopenharmony_ci console.error(`Failed to search a upload task, Code: ${err.code}, message: ${err.message}`); 4747e41f4b71Sopenharmony_ci return; 4748e41f4b71Sopenharmony_ci } 4749e41f4b71Sopenharmony_ci console.info(`Succeeded in searching a upload task. `); 4750e41f4b71Sopenharmony_ci }); 4751e41f4b71Sopenharmony_ci ``` 4752e41f4b71Sopenharmony_ci 4753e41f4b71Sopenharmony_ci## request.agent.search<sup>10+</sup> 4754e41f4b71Sopenharmony_ci 4755e41f4b71Sopenharmony_cisearch(filter: Filter, callback: AsyncCallback<Array<string>>): void 4756e41f4b71Sopenharmony_ci 4757e41f4b71Sopenharmony_ci根据[Filter](#filter10)过滤条件查找任务id。使用callback异步回调。 4758e41f4b71Sopenharmony_ci 4759e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4760e41f4b71Sopenharmony_ci 4761e41f4b71Sopenharmony_ci**参数:** 4762e41f4b71Sopenharmony_ci 4763e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4764e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4765e41f4b71Sopenharmony_ci | filter | [Filter](#filter10) | 是 | 过滤条件。 | 4766e41f4b71Sopenharmony_ci | callback | AsyncCallback<Array<string>> | 是 | 回调函数。当根据过滤条件查找任务成功,err为undefined,data为满足条件的任务id;否则为错误对象。 | 4767e41f4b71Sopenharmony_ci 4768e41f4b71Sopenharmony_ci**错误码:** 4769e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4770e41f4b71Sopenharmony_ci 4771e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4772e41f4b71Sopenharmony_ci | -------- | -------- | 4773e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Incorrect parameter type 2. Parameter verification failed | 4774e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4775e41f4b71Sopenharmony_ci 4776e41f4b71Sopenharmony_ci**示例:** 4777e41f4b71Sopenharmony_ci 4778e41f4b71Sopenharmony_ci ```ts 4779e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4780e41f4b71Sopenharmony_ci 4781e41f4b71Sopenharmony_ci let filter: request.agent.Filter = { 4782e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 4783e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND 4784e41f4b71Sopenharmony_ci } 4785e41f4b71Sopenharmony_ci request.agent.search(filter, (err: BusinessError, data: Array<string>) => { 4786e41f4b71Sopenharmony_ci if (err) { 4787e41f4b71Sopenharmony_ci console.error(`Failed to search a upload task, Code: ${err.code}, message: ${err.message}`); 4788e41f4b71Sopenharmony_ci return; 4789e41f4b71Sopenharmony_ci } 4790e41f4b71Sopenharmony_ci console.info(`Succeeded in searching a upload task. `); 4791e41f4b71Sopenharmony_ci }); 4792e41f4b71Sopenharmony_ci ``` 4793e41f4b71Sopenharmony_ci 4794e41f4b71Sopenharmony_ci 4795e41f4b71Sopenharmony_ci## request.agent.search<sup>10+</sup> 4796e41f4b71Sopenharmony_ci 4797e41f4b71Sopenharmony_cisearch(filter?: Filter): Promise<Array<string>> 4798e41f4b71Sopenharmony_ci 4799e41f4b71Sopenharmony_ci根据[Filter](#filter10)过滤条件查找任务id。使用Promise异步回调。 4800e41f4b71Sopenharmony_ci 4801e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Request.FileTransferAgent 4802e41f4b71Sopenharmony_ci 4803e41f4b71Sopenharmony_ci**参数:** 4804e41f4b71Sopenharmony_ci 4805e41f4b71Sopenharmony_ci | 参数名 | 类型 | 必填 | 说明 | 4806e41f4b71Sopenharmony_ci | -------- | -------- | -------- | -------- | 4807e41f4b71Sopenharmony_ci | filter | [Filter](#filter10) | 否 | 过滤条件。 | 4808e41f4b71Sopenharmony_ci 4809e41f4b71Sopenharmony_ci**返回值:** 4810e41f4b71Sopenharmony_ci 4811e41f4b71Sopenharmony_ci| 类型 | 说明 | 4812e41f4b71Sopenharmony_ci| ------------------- | ------------------------- | 4813e41f4b71Sopenharmony_ci| Promise<Array<string>> | Promise对象。返回满足条件任务id的Promise对象。 | 4814e41f4b71Sopenharmony_ci 4815e41f4b71Sopenharmony_ci**错误码:** 4816e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[上传下载错误码](errorcode-request.md)与[通用错误码说明文档](../errorcode-universal.md)。 4817e41f4b71Sopenharmony_ci 4818e41f4b71Sopenharmony_ci | 错误码ID | 错误信息 | 4819e41f4b71Sopenharmony_ci | -------- | -------- | 4820e41f4b71Sopenharmony_ci | 401 | parameter error. Possible causes: 1. Incorrect parameter type 2. Parameter verification failed | 4821e41f4b71Sopenharmony_ci | 13400003 | task service ability error. | 4822e41f4b71Sopenharmony_ci 4823e41f4b71Sopenharmony_ci**示例:** 4824e41f4b71Sopenharmony_ci 4825e41f4b71Sopenharmony_ci ```ts 4826e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 4827e41f4b71Sopenharmony_ci 4828e41f4b71Sopenharmony_ci let filter: request.agent.Filter = { 4829e41f4b71Sopenharmony_ci action: request.agent.Action.UPLOAD, 4830e41f4b71Sopenharmony_ci mode: request.agent.Mode.BACKGROUND 4831e41f4b71Sopenharmony_ci } 4832e41f4b71Sopenharmony_ci request.agent.search(filter).then((data: Array<string>) => { 4833e41f4b71Sopenharmony_ci console.info(`Succeeded in searching a upload task. `); 4834e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4835e41f4b71Sopenharmony_ci console.error(`Failed to search a upload task, Code: ${err.code}, message: ${err.message}`); 4836e41f4b71Sopenharmony_ci }); 4837e41f4b71Sopenharmony_ci ``` 4838e41f4b71Sopenharmony_ci 4839e41f4b71Sopenharmony_ci 4840e41f4b71Sopenharmony_ci 4841