js-apis-request.md 53.2 KB
Newer Older
1
# @ohos.request (上传下载)
A
修改  
anyueling 已提交
2

A
anyueling 已提交
3
request部件主要给应用提供上传下载文件、后台传输代理的基础能力。
A
修改  
anyueling 已提交
4

5 6
> **说明:**
>
Z
zengyawen 已提交
7 8 9 10 11 12
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块


Z
zengyawen 已提交
13
```js
Z
zengyawen 已提交
14 15 16 17 18
import request from '@ohos.request';
```


## 限制与约束
A
anyueling 已提交
19
下载服务器需要支持HTTP协议的head方法,能够通过Content-length获取下载数据大小,否则下载任务失败,可通过[on('fail')<sup>7+</sup>](#onfail7)查看失败原因。
Z
zengyawen 已提交
20

A
anyueling 已提交
21
上传目前仅支持HTTP请求,不支持HTTPS。
Z
zengyawen 已提交
22 23 24 25 26 27 28

## 常量

**需要权限**:ohos.permission.INTERNET

**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。

A
anyueling 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
### 网络类型
下载支持自定义网络类型,可以在[DownloadConfig](#downloadconfig)中通过networkType配置成以下网络类型。

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| NETWORK_MOBILE | number | 0x00000001 | 使用蜂窝网络时允许下载的位标志。 |
| NETWORK_WIFI | number | 0x00010000 | 使用WLAN时允许下载的位标志。 |

### 下载任务的错误码
下载相关[on('fail')<sup>7+</sup>](#onfail7)/[off('fail')<sup>7+</sup>](#offfail7)/[getTaskInfo<sup>9+</sup>](#gettaskinfo9)接口可能返回的错误码。

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| ERROR_CANNOT_RESUME<sup>7+</sup> | number |   0   | 网络原因导致恢复下载失败。 |
| ERROR_DEVICE_NOT_FOUND<sup>7+</sup> | number |   1   | 找不到SD卡等存储设备。 |
| ERROR_FILE_ALREADY_EXISTS<sup>7+</sup> | number |   2   | 要下载的文件已存在,下载会话不能覆盖现有文件。 |
| ERROR_FILE_ERROR<sup>7+</sup> | number |   3   | 文件操作失败。 |
| ERROR_HTTP_DATA_ERROR<sup>7+</sup> | number |   4   | HTTP传输失败。 |
| ERROR_INSUFFICIENT_SPACE<sup>7+</sup> | number |   5   | 存储空间不足。 |
| ERROR_TOO_MANY_REDIRECTS<sup>7+</sup> | number |   6   | 网络重定向过多导致的错误。 |
| ERROR_UNHANDLED_HTTP_CODE<sup>7+</sup> | number |   7   | 无法识别的HTTP代码。 |
| ERROR_UNKNOWN<sup>7+</sup> | number |   8   | 未知错误。 |
| ERROR_OFFLINE<sup>9+</sup> | number |   9   | 网络未连接。 |
| ERROR_UNSUPPORTED_NETWORK_TYPE<sup>9+</sup> | number |   10   | 网络类型不匹配。 |


### 下载任务暂停原因
下载相关[getTaskInfo<sup>9+</sup>](#gettaskinfo9)接口可能返回的任务暂停原因

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| PAUSED_QUEUED_FOR_WIFI<sup>7+</sup> | number |   0   | 下载被暂停并等待WLAN连接,因为文件大小超过了使用蜂窝网络的会话允许的最大值。 |
| PAUSED_WAITING_FOR_NETWORK<sup>7+</sup> | number |   1   | 由于网络问题(例如网络断开)而暂停下载。 |
| PAUSED_WAITING_TO_RETRY<sup>7+</sup> | number |   2   | 发生网络错误,将重试下载会话。 |
| PAUSED_BY_USER<sup>9+</sup> | number |   3   | 用户暂停会话。 |
| PAUSED_UNKNOWN<sup>7+</sup> | number |   4   | 未知原因导致暂停下载。 |

### 下载任务状态码
下载相关[getTaskInfo<sup>9+</sup>](#gettaskinfo9)接口可能返回的任务状态码

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| SESSION_SUCCESSFUL<sup>7+</sup> | number |   0   | 下载会话已完成。 |
| SESSION_RUNNING<sup>7+</sup> | number |   1   | 下载会话正在进行中。 |
| SESSION_PENDING<sup>7+</sup> | number |   2   | 正在调度下载会话。 |
| SESSION_PAUSED<sup>7+</sup> | number |   3   | 下载会话已暂停。 |
| SESSION_FAILED<sup>7+</sup> | number |   4   | 下载会话已失败,将不会重试。 |
Z
zengyawen 已提交
76 77


A
anyueling 已提交
78
## request.uploadFile<sup>9+</sup>
Z
zengyawen 已提交
79

A
anyueling 已提交
80
uploadFile(context: BaseContext, config: UploadConfig): Promise&lt;UploadTask&gt;
Z
zengyawen 已提交
81 82 83 84 85 86 87

上传,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

88 89 90
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
91
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
92
  | context | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 |
Z
zengyawen 已提交
93
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
Z
zengyawen 已提交
94

A
anyueling 已提交
95

96 97 98
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
99
  | -------- | -------- |
Z
zengyawen 已提交
100
  | Promise&lt;[UploadTask](#uploadtask)&gt; | 返回上传任务。 |
Z
zengyawen 已提交
101

A
anyueling 已提交
102 103 104 105 106 107 108
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

  | 错误码ID | 错误信息 |
  | -------- | -------- |
  | 13400002 | Bad file path. |

109
**示例:**
A
anyueling 已提交
110

111
  ```js
112
  let uploadTask;
A
anyueling 已提交
113
  let uploadConfig = {
A
anyueling 已提交
114
    url: 'http://patch',
A
anyueling 已提交
115 116 117 118 119
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
  };
A
anyueling 已提交
120 121
  try {
    request.uploadFile(globalThis.abilityContext, uploadConfig).then((data) => {
Z
zengyawen 已提交
122
      uploadTask = data;
A
anyueling 已提交
123 124 125 126 127 128
    }).catch((err) => {
        console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
    });
  } catch (err) {
    console.error('err.code : ' + err.code + ', err.message : ' + err.message);
  }
Z
zengyawen 已提交
129 130 131
  ```


A
anyueling 已提交
132
## request.uploadFile<sup>9+</sup>
Z
zengyawen 已提交
133

A
anyueling 已提交
134
uploadFile(context: BaseContext, config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
Z
zengyawen 已提交
135 136 137 138 139 140 141

上传,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

142 143
**参数:**

144
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
145
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
146
  | context | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 |
Z
zengyawen 已提交
147
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
148
  | callback | AsyncCallback&lt;[UploadTask](#uploadtask)&gt; | 是 | 回调函数,异步返回UploadTask对象。 |
Z
zengyawen 已提交
149

A
anyueling 已提交
150 151 152 153 154 155 156
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

  | 错误码ID | 错误信息 |
  | -------- | -------- |
  | 13400002 | Bad file path. |

157
**示例:**
A
anyueling 已提交
158

159
  ```js
160
  let uploadTask;
A
anyueling 已提交
161
  let uploadConfig = {
A
anyueling 已提交
162
    url: 'http://patch',
A
anyueling 已提交
163 164 165 166 167
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
  };
A
anyueling 已提交
168 169
  try {
    request.uploadFile(globalThis.abilityContext, uploadConfig, (err, data) => {
Z
zengyawen 已提交
170 171 172 173 174
      if (err) {
          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
          return;
      }
      uploadTask = data;
A
anyueling 已提交
175 176 177 178
    });
  } catch (err) {
    console.error('err.code : ' + err.code + ', err.message : ' + err.message);
  }
Z
zengyawen 已提交
179
  ```
A
anyueling 已提交
180

A
anyueling 已提交
181 182 183
## request.upload<sup>(deprecated)</sup>

upload(config: UploadConfig): Promise&lt;UploadTask&gt;
A
anyueling 已提交
184 185 186

上传,异步方法,使用promise形式返回结果。

A
anyueling 已提交
187 188 189
**模型约束**:此接口仅可在FA模型下使用

>  **说明:** 从API Version 9开始不再维护,建议使用[request.uploadFile<sup>9+</sup>](#requestuploadfile9)替代。
190

A
anyueling 已提交
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;[UploadTask](#uploadtask)&gt; | 返回上传任务。 |

**示例:**
A
anyueling 已提交
208

A
anyueling 已提交
209 210 211
  ```js
  let uploadTask;
  let uploadConfig = {
A
anyueling 已提交
212
    url: 'http://patch',
A
anyueling 已提交
213 214
    header: { key1: "value1", key2: "value2" },
    method: "POST",
A
anyueling 已提交
215 216
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
A
anyueling 已提交
217
  };
A
anyueling 已提交
218
  request.upload(uploadConfig).then((data) => {
A
anyueling 已提交
219 220 221
      uploadTask = data;
  }).catch((err) => {
      console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
A
anyueling 已提交
222
  })
A
anyueling 已提交
223 224 225
  ```


A
anyueling 已提交
226
## request.upload<sup>(deprecated)</sup>
A
anyueling 已提交
227

A
anyueling 已提交
228
upload(config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
A
anyueling 已提交
229 230 231

上传,异步方法,使用callback形式返回结果。

A
anyueling 已提交
232 233 234
**模型约束**:此接口仅可在FA模型下使用

>  **说明:** 从API Version 9开始不再维护,建议使用[request.uploadFile<sup>9+</sup>](#requestuploadfile9-1)替代。
235

A
anyueling 已提交
236 237 238 239 240
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

**参数:**
Z
zengyawen 已提交
241

242
  | 参数名 | 类型 | 必填 | 说明 |
A
anyueling 已提交
243 244
  | -------- | -------- | -------- | -------- |
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
245
  | callback | AsyncCallback&lt;[UploadTask](#uploadtask)&gt; | 是 | 回调函数,异步返回UploadTask对象。 |
A
anyueling 已提交
246 247

**示例:**
A
anyueling 已提交
248

A
anyueling 已提交
249 250 251
  ```js
  let uploadTask;
  let uploadConfig = {
A
anyueling 已提交
252
    url: 'http://patch',
A
anyueling 已提交
253 254 255 256 257
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
  };
A
anyueling 已提交
258
  request.upload(uploadConfig, (err, data) => {
A
anyueling 已提交
259 260 261 262 263 264 265
      if (err) {
          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
          return;
      }
      uploadTask = data;
  });
  ```
Z
zengyawen 已提交
266 267 268

## UploadTask

A
anyueling 已提交
269 270
上传任务,使用下列方法前,需要先获取UploadTask对象,promise形式通过[request.uploadFile<sup>9+</sup>](#requestuploadfile9)获取,callback形式通过[request.uploadFile<sup>9+</sup>](#requestuploadfile9-1)获取。

Z
zengyawen 已提交
271 272 273 274


### on('progress')

Z
zengyawen 已提交
275
on(type: 'progress', callback:(uploadedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
276 277 278 279 280 281 282

开启上传任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

283 284 285
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
286
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
287 288
  | type | string | 是 | 订阅的事件类型,取值为'progress'(上传的进度信息)。 |
  | callback | function | 是 | 上传进度的回调函数。 |
Z
zengyawen 已提交
289

290
  回调函数的参数
Z
zengyawen 已提交
291

292 293
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
294 295
| uploadedSize | number | 是 | 当前已上传文件大小,单位为B。 |
| totalSize | number | 是 | 上传文件的总大小,单位为B。 |
Z
zengyawen 已提交
296

297
**示例:**
A
anyueling 已提交
298

299
  ```js
Z
zengyawen 已提交
300
  uploadTask.on('progress', function callback(uploadedSize, totalSize) {
Z
zengyawen 已提交
301 302
      console.info("upload totalSize:" + totalSize + "  uploadedSize:" + uploadedSize);
  }
Z
zengyawen 已提交
303
  );
Z
zengyawen 已提交
304 305 306 307 308
  ```


### on('headerReceive')<sup>7+</sup>

Z
zengyawen 已提交
309
on(type: 'headerReceive', callback:  (header: object) =&gt; void): void
Z
zengyawen 已提交
310 311 312 313 314 315 316

开启上传任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

317 318 319
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
320
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
321
  | type | string | 是 | 订阅的事件类型,取值为'headerReceive'(接收响应头)。 |
Z
zengyawen 已提交
322
  | callback | function | 是 | HTTP&nbsp;Response&nbsp;Header事件的回调函数。 |
Z
zengyawen 已提交
323 324 325

  回调函数的参数:

326 327 328
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| header | object | 是 | HTTP&nbsp;Response&nbsp;Header。 |
Z
zengyawen 已提交
329

330
**示例:**
A
anyueling 已提交
331

332
  ```js
Z
zengyawen 已提交
333
  uploadTask.on('headerReceive', function callback(headers){   
Z
zengyawen 已提交
334 335
      console.info("upOnHeader headers:" + JSON.stringify(headers));
  }
Z
zengyawen 已提交
336
  );
Z
zengyawen 已提交
337 338 339
  ```


A
修改  
anyueling 已提交
340
### on('complete' | 'fail')<sup>9+</sup>
A
anyueling 已提交
341 342 343 344 345 346 347 348 349 350 351 352 353 354

 on(type:'complete' | 'fail', callback: Callback&lt;Array&lt;TaskState&gt;&gt;): void;

开启上传任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 订阅的事件类型,取值为'complete',表示上传任务完成;取值为'fail',表示上传任务失败。|
355
  | callback | Callback&lt;Array&lt;TaskState&gt;&gt; | 是 | 上传任务完成或失败的回调函数。 |
A
anyueling 已提交
356 357 358 359 360

  回调函数的参数

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
修改  
anyueling 已提交
361
| taskstates | Array&lt;[TaskState](#taskstate9)&gt; | 是 | 上传任务返回结果 |
A
anyueling 已提交
362 363

**示例:**
A
anyueling 已提交
364

A
anyueling 已提交
365
  ```js
A
修改  
anyueling 已提交
366 367 368
  uploadTask.on('complete', function callback(taskStates) {
    for (let i = 0; i < taskStates.length; i++ ) {
      console.info("upOnComplete taskState:" + JSON.stringify(taskStates[i]));
A
anyueling 已提交
369 370 371 372
    }
  }
  );

A
修改  
anyueling 已提交
373 374 375
  uploadTask.on('fail', function callback(taskStates) {
    for (let i = 0; i < taskStates.length; i++ ) {
      console.info("upOnFail taskState:" + JSON.stringify(taskStates[i]));
A
anyueling 已提交
376 377 378 379 380 381
    }
  }
  );
  ```


Z
zengyawen 已提交
382 383
### off('progress')

Z
zengyawen 已提交
384
off(type:  'progress',  callback?: (uploadedSize: number, totalSize: number) =&gt;  void): void
Z
zengyawen 已提交
385 386 387 388 389 390 391

关闭上传任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

392 393
**参数:**

394
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
395
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
396 397
  | type | string | 是 | 取消订阅的事件类型,取值为'progress'(上传的进度信息)。 |
  | callback | function | 否 | 上传任务的回调函数。 |
Z
zengyawen 已提交
398 399 400

  回调函数的参数:

401 402
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
403 404
| uploadedSize | number | 是 | 当前已上传文件的大小,单位为B。 |
| totalSize | number | 是 | 上传文件的总大小,单位为B。 |
Z
zengyawen 已提交
405

406
**示例:**
A
anyueling 已提交
407

408
  ```js
Z
zengyawen 已提交
409
  uploadTask.off('progress', function callback(uploadedSize, totalSize) {
Z
zengyawen 已提交
410 411
      console.info('uploadedSize: ' + uploadedSize, 'totalSize: ' + totalSize);
  }
Z
zengyawen 已提交
412
  );
Z
zengyawen 已提交
413 414 415 416 417
  ```


### off('headerReceive')<sup>7+</sup>

Z
zengyawen 已提交
418
off(type: 'headerReceive', callback?: (header: object) =&gt; void): void
Z
zengyawen 已提交
419 420 421 422 423 424 425

关闭上传任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

426 427
**参数:**

428
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
429
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
430
  | type | string | 是 | 取消订阅的事件类型,取值为'headerReceive'(接收响应头)。 |
Z
zengyawen 已提交
431
  | callback | function | 否 | HTTP&nbsp;Response&nbsp;Header事件的回调函数。 |
Z
zengyawen 已提交
432 433 434

  回调函数的参数:

435 436 437
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| header | object | 是 | HTTP&nbsp;Response&nbsp;Header。 |
Z
zengyawen 已提交
438

439
**示例:**
A
anyueling 已提交
440

441
  ```js
Z
zengyawen 已提交
442
  uploadTask.off('headerReceive', function callback(headers) {
Z
zengyawen 已提交
443 444
      console.info("upOnHeader headers:" + JSON.stringify(headers));
  }
Z
zengyawen 已提交
445
  );
Z
zengyawen 已提交
446 447
  ```

A
修改  
anyueling 已提交
448
### off('complete' | 'fail')<sup>9+</sup>
A
anyueling 已提交
449

A
anyueling 已提交
450
 off(type:'complete' | 'fail', callback?: Callback&lt;Array&lt;TaskState&gt;&gt;): void;
A
anyueling 已提交
451

A
修改  
anyueling 已提交
452
关闭上传任务监听,异步方法,使用callback形式返回结果。
A
anyueling 已提交
453 454 455 456 457 458 459 460 461 462

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 订阅的事件类型,取值为'complete',表示上传任务完成;取值为'fail',表示上传任务失败。|
463
  | callback | Callback&lt;Array&lt;TaskState&gt;&gt; | 否 | 上传任务完成或失败的回调函数。 |
A
anyueling 已提交
464 465 466 467 468

  回调函数的参数

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
修改  
anyueling 已提交
469
| taskstates | Array&lt;[TaskState](#taskstate9)&gt; | 是 | 上传任务返回结果 |
A
anyueling 已提交
470 471

**示例:**
A
anyueling 已提交
472

A
anyueling 已提交
473
  ```js
A
修改  
anyueling 已提交
474 475 476
  uploadTask.off('complete', function callback(taskStates) {
    for (let i = 0; i < taskStates.length; i++ ) {
      console.info("upOnComplete taskState:" + JSON.stringify(taskStates[i]));
A
anyueling 已提交
477 478 479
    }
  }
  );
A
anyueling 已提交
480

A
修改  
anyueling 已提交
481 482 483
  uploadTask.off('fail', function callback(taskStates) {
    for (let i = 0; i < taskStates.length; i++ ) {
      console.info("upOnFail taskState:" + JSON.stringify(taskStates[i]));
A
anyueling 已提交
484 485 486
    }
  }
  );
A
anyueling 已提交
487 488
  ```

A
anyueling 已提交
489 490
### delete<sup>9+</sup>
delete(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
491 492 493 494 495 496 497

移除上传的任务,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

498 499 500
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
501
  | -------- | -------- |
Z
zengyawen 已提交
502
  | Promise&lt;boolean&gt; | 移除任务是否成功。true:成功,false:不成功。 |
Z
zengyawen 已提交
503

504
**示例:**
A
anyueling 已提交
505

506
  ```js
A
anyueling 已提交
507
  uploadTask.delete().then((result) => {
Z
zengyawen 已提交
508 509 510 511 512 513 514 515 516 517 518
      if (result) {
          console.info('Upload task removed successfully. ');
      } else {
          console.error('Failed to remove the upload task. ');
      }
  }).catch((err) => {
      console.error('Failed to remove the upload task. Cause: ' + JSON.stringify(err));
  });
  ```


A
anyueling 已提交
519
### delete<sup>9+</sup>
Z
zengyawen 已提交
520

A
anyueling 已提交
521
delete(callback: AsyncCallback&lt;boolean&gt;): void
Z
zengyawen 已提交
522 523 524 525 526 527 528

移除上传的任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

529 530
**参数:**

531
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
532
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
533
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 移除任务的回调函数。 |
Z
zengyawen 已提交
534

535
**示例:**
A
anyueling 已提交
536

537
  ```js
A
anyueling 已提交
538
  uploadTask.delete((err, result) => {
Z
zengyawen 已提交
539 540 541 542 543 544 545 546 547 548 549 550 551
      if (err) {
          console.error('Failed to remove the upload task. Cause: ' + JSON.stringify(err));
          return;
      }
      if (result) {
          console.info('Upload task removed successfully.');
      } else {
          console.error('Failed to remove the upload task.');
      }
  });
  ```


A
anyueling 已提交
552
### remove<sup>(deprecated)</sup>
553

A
anyueling 已提交
554
remove(): Promise&lt;boolean&gt;
555 556 557

移除上传的任务,异步方法,使用promise形式返回结果。

A
anyueling 已提交
558 559
>  **说明:** 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9)替代。

560 561 562 563 564 565
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

**返回值:**

A
anyueling 已提交
566
  | 类型 | 说明 |
567
  | -------- | -------- |
A
anyueling 已提交
568
  | Promise&lt;boolean&gt; | 移除任务是否成功。true:成功,false:不成功。 |
569 570 571 572

**示例:**

  ```js
A
anyueling 已提交
573
  uploadTask.remove().then((result) => {
574 575 576 577 578 579 580 581 582 583 584
      if (result) {
          console.info('Upload task removed successfully. ');
      } else {
          console.error('Failed to remove the upload task. ');
      }
  }).catch((err) => {
      console.error('Failed to remove the upload task. Cause: ' + JSON.stringify(err));
  });
  ```


A
anyueling 已提交
585
### remove<sup>(deprecated)</sup>
586

A
anyueling 已提交
587
remove(callback: AsyncCallback&lt;boolean&gt;): void
588 589 590

移除上传的任务,异步方法,使用callback形式返回结果。

A
anyueling 已提交
591 592
>  **说明:** 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9-1)替代。

593 594 595 596 597 598
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Upload

**参数:**

A
anyueling 已提交
599
  | 参数名 | 类型 | 必填 | 说明 |
600
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
601
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 移除任务的回调函数。 |
602 603 604 605

**示例:**

  ```js
A
anyueling 已提交
606
  uploadTask.remove((err, result) => {
607 608 609 610 611 612 613 614 615 616 617 618
      if (err) {
          console.error('Failed to remove the upload task. Cause: ' + JSON.stringify(err));
          return;
      }
      if (result) {
          console.info('Upload task removed successfully.');
      } else {
          console.error('Failed to remove the upload task.');
      }
  });
  ```

Z
zengyawen 已提交
619
## UploadConfig
620
上传任务的配置信息。
Z
zengyawen 已提交
621

A
anyueling 已提交
622 623
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
624 625
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。

Z
zengyawen 已提交
626
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
627
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
628
| url | string | 是 | 资源地址。 |
A
anyueling 已提交
629
| header | Object | 是 | 添加要包含在上传请求中的HTTP或HTTPS标志头。 |
630
| method | string | 是 | 请求方法:POST、PUT。缺省为POST。 |
Z
zengyawen 已提交
631
| files | Array&lt;[File](#file)&gt; | 是 | 要上传的文件列表。请使用&nbsp;multipart/form-data提交。 |
632
| data | Array&lt;[RequestData](#requestdata)&gt; | 是 | 请求的表单数据。 |
Z
zengyawen 已提交
633

A
修改  
anyueling 已提交
634
## TaskState<sup>9+</sup>
635
上传任务信息,[on('complete' | 'fail')<sup>9+</sup>](#oncomplete--fail9)[off('complete' | 'fail')<sup>9+</sup>](#offcomplete--fail9)接口的回调参数。
A
anyueling 已提交
636 637 638 639 640 641 642 643 644 645

**需要权限**:ohos.permission.INTERNET

**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Upload。

| 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| path | string | 是 | 文件路径 |
| responseCode | number | 是 | 上传任务返回值 |
| message | string | 是 | 上传任务结果描述信息 |
Z
zengyawen 已提交
646 647

## File
648
[UploadConfig](#uploadconfig)中的文件列表。
Z
zengyawen 已提交
649

A
anyueling 已提交
650 651
**需要权限**:ohos.permission.INTERNET

A
anyueling 已提交
652
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。
Z
zengyawen 已提交
653

Z
zengyawen 已提交
654
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
655
| -------- | -------- | -------- | -------- |
656 657
| filename | string | 是 | multipart提交时,请求头中的文件名。 |
| name | string | 是 | multipart提交时,表单项目的名称,缺省为file。 |
A
anyueling 已提交
658
| uri | string | 是 | 文件的本地存储路径。<br/>仅支持“internal”协议类型,“internal://cache/”为必填字段,示例:<br/>internal://cache/path/to/file.txt |
659
| type | string | 是 | 文件的内容类型,默认根据文件名或路径的后缀获取。 |
Z
zengyawen 已提交
660 661 662


## RequestData
663
[UploadConfig](#uploadconfig)中的表单数据。
Z
zengyawen 已提交
664

A
anyueling 已提交
665
**需要权限**:ohos.permission.INTERNET
Z
zengyawen 已提交
666

A
anyueling 已提交
667
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download。
668

Z
zengyawen 已提交
669
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
670
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
671 672
| name | string | 是 | 表示表单元素的名称。 |
| value | string | 是 | 表示表单元素的值。 |
Z
zengyawen 已提交
673

A
anyueling 已提交
674
## request.downloadFile<sup>9+</sup>
Z
zengyawen 已提交
675

A
anyueling 已提交
676
downloadFile(context: BaseContext, config: DownloadConfig): Promise&lt;DownloadTask&gt;
Z
zengyawen 已提交
677 678 679 680 681 682 683

下载,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

684 685 686
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
687
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
688
  | context | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 |
Z
zengyawen 已提交
689
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
Z
zengyawen 已提交
690

691 692 693
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
694
  | -------- | -------- |
Z
zengyawen 已提交
695
  | Promise&lt;[DownloadTask](#downloadtask)&gt; | 返回下载任务。 |
Z
zengyawen 已提交
696

A
anyueling 已提交
697 698 699 700 701 702 703 704 705
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

  | 错误码ID | 错误信息 |
  | -------- | -------- |
  | 13400001 | File operation error. |
  | 13400002 | Bad file path. |
  | 13400003 | Task manager service error. |

706
**示例:**
A
anyueling 已提交
707

708
  ```js
709
  let downloadTask;
A
anyueling 已提交
710 711 712 713 714 715 716 717 718
  try {
    request.downloadFile(globalThis.abilityContext, { url: 'https://xxxx/xxxx.hap' }).then((data) => {
        downloadTask = data;
    }).catch((err) => {
        console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
    })
  } catch (err) {
    console.error('err.code : ' + err.code + ', err.message : ' + err.message);
  }
Z
zengyawen 已提交
719 720 721
  ```


A
anyueling 已提交
722
## request.downloadFile<sup>9+</sup>
Z
zengyawen 已提交
723

A
anyueling 已提交
724
downloadFile(context: BaseContext, config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void;
Z
zengyawen 已提交
725 726 727 728 729 730 731

下载,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

732 733
**参数:**

734
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
735
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
736
  | context | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 基于应用程序的上下文。 |
Z
zengyawen 已提交
737
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
738
  | callback | AsyncCallback&lt;[DownloadTask](#downloadtask)&gt; | 是 | 下载接口的回调函数。 |
Z
zengyawen 已提交
739

A
anyueling 已提交
740 741 742 743 744 745 746 747 748
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

  | 错误码ID | 错误信息 |
  | -------- | -------- |
  | 13400001 | File operation error. |
  | 13400002 | Bad file path. |
  | 13400003 | Task manager service error. |

749
**示例:**
A
anyueling 已提交
750

751
  ```js
752
  let downloadTask;
A
anyueling 已提交
753 754 755 756 757 758 759 760 761 762 763 764
  try {
    request.downloadFile(globalThis.abilityContext, { url: 'https://xxxx/xxxxx.hap', 
    filePath: 'xxx/xxxxx.hap'}, (err, data) => {
        if (err) {
            console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
            return;
        }
        downloadTask = data;
    });
  } catch (err) {
    console.error('err.code : ' + err.code + ', err.message : ' + err.message);
  }
Z
zengyawen 已提交
765 766
  ```

A
anyueling 已提交
767
## request.download<sup>(deprecated)</sup>
A
anyueling 已提交
768

A
anyueling 已提交
769
download(config: DownloadConfig): Promise&lt;DownloadTask&gt;
A
anyueling 已提交
770 771 772

下载,异步方法,使用promise形式返回结果。

A
anyueling 已提交
773 774 775
>  **说明:** 从API Version 9开始不再维护,建议使用[request.downloadFile<sup>9+</sup>](#requestdownloadfile9)替代。

**模型约束**:此接口仅可在FA模型下使用
776

A
anyueling 已提交
777 778 779 780 781 782 783 784 785 786 787 788 789 790 791
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;[DownloadTask](#downloadtask)&gt; | 返回下载任务。 |
Z
zengyawen 已提交
792

A
anyueling 已提交
793
**示例:**
A
anyueling 已提交
794

A
anyueling 已提交
795 796
  ```js
  let downloadTask;
A
anyueling 已提交
797
  request.download({ url: 'https://xxxx/xxxx.hap' }).then((data) => {
A
anyueling 已提交
798 799 800 801 802 803 804
      downloadTask = data;
  }).catch((err) => {
      console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
  })
  ```


A
anyueling 已提交
805
## request.download<sup>(deprecated)</sup>
A
anyueling 已提交
806

A
anyueling 已提交
807
download(config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void
A
anyueling 已提交
808 809 810

下载,异步方法,使用callback形式返回结果。

A
anyueling 已提交
811 812 813
>  **说明:** 从API Version 9开始不再维护,建议使用[request.downloadFile<sup>9+</sup>](#requestdownloadfile9-1)替代。

**模型约束**:此接口仅可在FA模型下使用
814

A
anyueling 已提交
815 816 817 818 819 820
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

821
  | 参数名 | 类型 | 必填 | 说明 |
A
anyueling 已提交
822 823
  | -------- | -------- | -------- | -------- |
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
824
  | callback | AsyncCallback&lt;[DownloadTask](#downloadtask)&gt; | 是 | 下载接口的回调函数。 |
A
anyueling 已提交
825 826

**示例:**
A
anyueling 已提交
827

A
anyueling 已提交
828 829
  ```js
  let downloadTask;
A
anyueling 已提交
830
  request.download({ url: 'https://xxxx/xxxxx.hap', 
A
anyueling 已提交
831 832 833 834 835 836 837 838
  filePath: 'xxx/xxxxx.hap'}, (err, data) => {
      if (err) {
          console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
          return;
      }
      downloadTask = data;
  });
  ```
839

Z
zengyawen 已提交
840 841
## DownloadTask

A
anyueling 已提交
842
下载任务,使用下列方法前,需要先获取DownloadTask对象,promise形式通过[request.downloadFile<sup>9+</sup>](#requestdownloadfile9)获取,callback形式通过[request.downloadFile<sup>9+</sup>](#requestdownloadfile9-1)获取。
Z
zengyawen 已提交
843 844 845 846


### on('progress')

Z
zengyawen 已提交
847
on(type: 'progress', callback:(receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
848 849 850 851 852 853 854

开启下载任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

855 856 857
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
858
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
859 860
  | type | string | 是 | 订阅的事件类型,取值为'progress'(下载的进度信息)。 |
  | callback | function | 是 | 下载的回调函数。 |
Z
zengyawen 已提交
861 862 863

  回调函数的参数:

864 865
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
866 867
| receivedSize | number | 是 | 当前下载的进度,单位为B。 |
| totalSize | number | 是 | 下载文件的总大小,单位为B。 |
Z
zengyawen 已提交
868

869
**示例:**
A
anyueling 已提交
870

871
  ```js
872
  downloadTask.on('progress', function download_callback(receivedSize, totalSize) {
Z
zengyawen 已提交
873 874
      console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
  }
Z
zengyawen 已提交
875
  );
Z
zengyawen 已提交
876 877 878 879 880
  ```


### off('progress')

Z
zengyawen 已提交
881
off(type: 'progress', callback?: (receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
882 883 884 885 886 887 888

关闭下载任务监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

889 890
**参数:**

891
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
892
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
893 894
  | type | string | 是 | 取消订阅的事件类型,取值为'progress'(下载的进度信息)。 |
  | callback | function | 否 | 下载任务的回调函数。 |
Z
zengyawen 已提交
895 896 897

  回调函数的参数:

898 899
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
900 901
| receivedSize | number | 是 | 当前下载的进度,单位为B。|
| totalSize | number | 是 | 下载文件的总大小,单位为B。|
Z
zengyawen 已提交
902

903
**示例:**
A
anyueling 已提交
904

905
  ```js
906 907 908
  downloadTask .off('progress', function download_callback(receivedSize, totalSize) {
      console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
  }
Z
zengyawen 已提交
909
  );
Z
zengyawen 已提交
910 911 912
  ```


Z
zengyawen 已提交
913
### on('complete'|'pause'|'remove')<sup>7+</sup>
Z
zengyawen 已提交
914

Z
zengyawen 已提交
915
on(type: 'complete'|'pause'|'remove', callback:() =&gt; void): void
Z
zengyawen 已提交
916

Z
zengyawen 已提交
917
开启下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
918 919 920 921 922

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

923 924 925
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
926
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
927 928
  | type | string | 是 | 订阅的事件类型。<br>- 取值为'complete',表示下载任务完成;<br/>- 取值为'pause',表示下载任务暂停;<br/>- 取值为'remove',表示下载任务移除。 |
  | callback | function | 是 | 回调函数。 |
Z
zengyawen 已提交
929

930
**示例:**
A
anyueling 已提交
931

932
  ```js
933 934 935
  downloadTask.on('complete', function callback() {
      console.info('Download task completed.');
  }
Z
zengyawen 已提交
936
  );
Z
zengyawen 已提交
937 938 939
  ```


Z
zengyawen 已提交
940
### off('complete'|'pause'|'remove')<sup>7+</sup>
Z
zengyawen 已提交
941

Z
zengyawen 已提交
942
off(type: 'complete'|'pause'|'remove', callback?:() =&gt; void): void
Z
zengyawen 已提交
943

Z
zengyawen 已提交
944
取消下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
945 946 947 948 949

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

950 951 952
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
953
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
954 955
  | type | string | 是 | 取消订阅的事件类型。<br/>- 取值为'complete',表示下载任务完成;<br/>- 取值为'pause',表示下载任务暂停;<br/>- 取值为'remove',表示下载任务移除。 |
  | callback | function | 否 | 回调函数。 |
Z
zengyawen 已提交
956

957
**示例:**
A
anyueling 已提交
958

959
  ```js
960 961 962
  downloadTask.off('complete', function callback() {
      console.info('Download task completed.');
  }
Z
zengyawen 已提交
963
  );
Z
zengyawen 已提交
964 965 966 967 968
  ```


### on('fail')<sup>7+</sup>

Z
zengyawen 已提交
969
on(type: 'fail', callback: (err: number) =&gt; void): void
Z
zengyawen 已提交
970 971 972 973 974 975 976

开启下载任务失败监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

977 978 979
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
980
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
981 982
  | type | string | 是 | 订阅的事件类型,取值为'fail'(下载失败)。 |
  | callback | function | 是 | 下载失败的回调函数。 |
Z
zengyawen 已提交
983 984 985

  回调函数的参数:

986 987
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
988
| err | number | 是 | 下载失败的错误码,错误原因见[下载任务的错误码](#下载任务的错误码)。 |
Z
zengyawen 已提交
989

990
**示例:**
A
anyueling 已提交
991

992
  ```js 
993 994 995
  downloadTask.on('fail', function callBack(err) {
      console.info('Download task failed. Cause:' + err);
  }
Z
zengyawen 已提交
996
  );
Z
zengyawen 已提交
997 998 999 1000 1001
  ```


### off('fail')<sup>7+</sup>

Z
zengyawen 已提交
1002
off(type: 'fail', callback?: (err: number) =&gt; void): void
Z
zengyawen 已提交
1003 1004 1005 1006 1007 1008 1009

取消下载任务失败监听,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1010 1011 1012
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1013
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1014 1015
  | type | string | 是 | 取消订阅的事件类型,取值为'fail'(下载失败)。 |
  | callback | function | 否 | 取消下载失败的回调函数。 |
Z
zengyawen 已提交
1016 1017 1018

  回调函数的参数

1019 1020
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
1021
| err | number | 是 | 下载失败的错误码。错误原因见[下载任务的错误码](#下载任务的错误码)。 |
Z
zengyawen 已提交
1022

1023
**示例:**
A
anyueling 已提交
1024

1025
  ```js
1026 1027 1028
  downloadTask.off('fail', function callBack(err) {
      console.info('Download task failed. Cause:' + err);
  } 
Z
zengyawen 已提交
1029
  );
Z
zengyawen 已提交
1030 1031
  ```

A
anyueling 已提交
1032
### delete<sup>9+</sup>
Z
zengyawen 已提交
1033

A
anyueling 已提交
1034
delete(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1035 1036 1037 1038 1039 1040 1041

移除下载的任务,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1042 1043 1044
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
1045
  | -------- | -------- |
Z
zengyawen 已提交
1046
  | Promise&lt;boolean&gt; | 移除任务是否成功。 |
Z
zengyawen 已提交
1047

1048
**示例:**
A
anyueling 已提交
1049

1050
  ```js
A
anyueling 已提交
1051
  downloadTask.delete().then((result) => {
Z
zengyawen 已提交
1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062
      if (result) {
          console.info('Download task removed.');
      } else {
          console.error('Failed to remove the download task.');
      }
  }).catch ((err) => {
      console.error('Failed to remove the download task.');
  });
  ```


A
anyueling 已提交
1063
### delete<sup>9+</sup>
Z
zengyawen 已提交
1064

A
anyueling 已提交
1065
delete(callback: AsyncCallback&lt;boolean&gt;): void
Z
zengyawen 已提交
1066 1067 1068 1069 1070 1071 1072

移除下载的任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1073 1074
**参数:**

1075
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1076
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1077
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 移除任务是否成功。 |
Z
zengyawen 已提交
1078

1079
**示例:**
A
anyueling 已提交
1080

1081
  ```js
A
anyueling 已提交
1082
  downloadTask.delete((err, result)=>{
Z
zengyawen 已提交
1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095
      if(err) {
          console.error('Failed to remove the download task.');
          return;
      } 
      if (result) {
          console.info('Download task removed.');
      } else {
          console.error('Failed to remove the download task.');
      } 
  });
  ```


A
anyueling 已提交
1096
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1097

A
anyueling 已提交
1098
getTaskInfo(): Promise&lt;DownloadInfo&gt;
Z
zengyawen 已提交
1099 1100 1101 1102 1103 1104 1105

查询下载任务,异步方法,使用promise形式返回DownloadInfo里的信息。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1106 1107 1108
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
1109
  | -------- | -------- |
Z
zengyawen 已提交
1110
  | Promise&lt;[DownloadInfo](#downloadinfo7)&gt; | 查询下载任务信息。 |
Z
zengyawen 已提交
1111

1112
**示例:**
A
anyueling 已提交
1113

1114
  ```js
A
anyueling 已提交
1115
  downloadTask.getTaskInfo().then((downloadInfo) => {    
Z
zengyawen 已提交
1116
      console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
Z
zengyawen 已提交
1117 1118 1119 1120 1121 1122
  }) .catch((err) => {
      console.error('Failed to query the download task. Cause:' + err)
  });
  ```


A
anyueling 已提交
1123
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1124

A
anyueling 已提交
1125
getTaskInfo(callback: AsyncCallback&lt;DownloadInfo&gt;): void
Z
zengyawen 已提交
1126 1127 1128 1129 1130 1131 1132

查询下载的任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1133 1134
**参数:**

1135
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1136
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1137
  | callback | AsyncCallback&lt;[DownloadInfo](#downloadinfo7)&gt; | 是 | 查询下载任务的回调函数。 |
Z
zengyawen 已提交
1138

1139
**示例:**
A
anyueling 已提交
1140

1141
  ```js
A
anyueling 已提交
1142
  downloadTask.getTaskInfo((err, downloadInfo)=>{
Z
zengyawen 已提交
1143 1144 1145 1146 1147 1148 1149 1150 1151
      if(err) {
          console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
      } else {
          console.info('download query success. data:'+ JSON.stringify(downloadInfo));
      }
  });
  ```


A
anyueling 已提交
1152
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1153

A
anyueling 已提交
1154
getTaskMimeType(): Promise&lt;string&gt;
Z
zengyawen 已提交
1155 1156 1157 1158 1159 1160 1161

查询下载的任务的 MimeType,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1162 1163 1164
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
1165
  | -------- | -------- |
Z
zengyawen 已提交
1166
  | Promise&lt;string&gt; | 查询下载任务的MimeType。 |
Z
zengyawen 已提交
1167

1168
**示例:**
A
anyueling 已提交
1169

1170
  ```js
A
anyueling 已提交
1171
  downloadTask.getTaskMimeType().then((data) => {    
Z
zengyawen 已提交
1172 1173 1174 1175 1176 1177 1178
      console.info('Download task queried. Data:' + JSON.stringify(data));
  }).catch((err) => {
      console.error('Failed to query the download MimeType. Cause:' + JSON.stringify(err))
  });
  ```


A
anyueling 已提交
1179
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1180

A
anyueling 已提交
1181
getTaskMimeType(callback: AsyncCallback&lt;string&gt;): void;
Z
zengyawen 已提交
1182 1183 1184 1185 1186 1187 1188

查询下载的任务的 MimeType,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1189 1190
**参数:**

1191
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1192
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1193
  | callback | AsyncCallback&lt;string&gt; | 是 | 查询下载任务的MimeType的回调函数。 |
Z
zengyawen 已提交
1194

1195
**示例:**
A
anyueling 已提交
1196

1197
  ```js
A
anyueling 已提交
1198
  downloadTask.getTaskMimeType((err, data)=>{
Z
zengyawen 已提交
1199 1200 1201 1202 1203 1204 1205 1206 1207
      if(err) {
          console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
      } else {
          console.info('Download task queried. data:' + JSON.stringify(data));
      }
  });
  ```


A
anyueling 已提交
1208
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1209

A
anyueling 已提交
1210
suspend(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1211 1212 1213 1214 1215 1216 1217

暂停下载任务,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1218 1219 1220
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
1221
  | -------- | -------- |
A
anyueling 已提交
1222
  | Promise&lt;boolean&gt; | 暂停下载任务是否成功。 |
Z
zengyawen 已提交
1223

1224
**示例:**
A
anyueling 已提交
1225

1226
  ```js
A
anyueling 已提交
1227
  downloadTask.suspend().then((result) => {    
Z
zengyawen 已提交
1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238
      if (result) {
           console.info('Download task paused. ');
      } else {
          console.error('Failed to pause the download task. Cause:' + JSON.stringify(result));
      }
  }).catch((err) => {
      console.error('Failed to pause the download task. Cause:' + JSON.stringify(err));
  });
  ```


A
anyueling 已提交
1239
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1240

A
anyueling 已提交
1241
suspend(callback: AsyncCallback&lt;boolean&gt;): void
1242

Z
zengyawen 已提交
1243 1244 1245 1246 1247 1248
暂停下载任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1249 1250
**参数:**

1251
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1252
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1253
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 暂停下载任务的回调函数。 |
Z
zengyawen 已提交
1254

1255
**示例:**
A
anyueling 已提交
1256

1257
  ```js
A
anyueling 已提交
1258
  downloadTask.suspend((err, result)=>{
Z
zengyawen 已提交
1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271
      if(err) {
          console.error('Failed to pause the download task. Cause:' + JSON.stringify(err));
          return;
      }
      if (result) {
           console.info('Download task paused. ');
      } else {
          console.error('Failed to pause the download task. Cause:' + JSON.stringify(result));
      }
  });
  ```


A
anyueling 已提交
1272
### restore<sup>9+</sup>
Z
zengyawen 已提交
1273

A
anyueling 已提交
1274
restore(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1275 1276 1277 1278 1279 1280 1281

重新启动暂停的下载任务,异步方法,使用promise形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1282
**返回值:**
1283 1284

  | 类型 | 说明 |
Z
zengyawen 已提交
1285
  | -------- | -------- |
A
anyueling 已提交
1286
  | Promise&lt;boolean&gt; | 重新启动暂停的下载任务是否成功。 |
Z
zengyawen 已提交
1287

1288
**示例:**
A
anyueling 已提交
1289

1290
  ```js
A
anyueling 已提交
1291
  downloadTask.restore().then((result) => {
Z
zengyawen 已提交
1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303
      if (result) {
          console.info('Download task resumed.')
      } else {
          console.error('Failed to resume the download task. ');
      }
      console.info('Download task resumed.')
  }).catch((err) => {
      console.error('Failed to resume the download task. Cause:' + err);
  });
  ```


A
anyueling 已提交
1304
### restore<sup>9+</sup>
Z
zengyawen 已提交
1305

A
anyueling 已提交
1306
restore(callback: AsyncCallback&lt;boolean&gt;): void
1307

Z
zengyawen 已提交
1308 1309 1310 1311 1312 1313
重新启动暂停的下载任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1314 1315
**参数:**

1316
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1317
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1318
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 重新启动暂停的下载任务的回调函数。 |
Z
zengyawen 已提交
1319

1320
**示例:**
A
anyueling 已提交
1321

1322
  ```js
A
anyueling 已提交
1323
  downloadTask.restore((err, result)=>{
Z
zengyawen 已提交
1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336
      if (err) {
          console.error('Failed to resume the download task. Cause:' + err);
          return;
      } 
      if (result) {
          console.info('Download task resumed.');
      } else {
          console.error('Failed to resume the download task.');
      }
  });
  ```


1337

A
anyueling 已提交
1338 1339 1340
### remove<sup>(deprecated)</sup>

remove(): Promise&lt;boolean&gt;
1341 1342 1343

移除下载的任务,异步方法,使用promise形式返回结果。

A
anyueling 已提交
1344 1345
>  **说明:** 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9-2)替代。

1346 1347 1348 1349 1350 1351
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**返回值:**

A
anyueling 已提交
1352
  | 类型 | 说明 |
1353
  | -------- | -------- |
A
anyueling 已提交
1354
  | Promise&lt;boolean&gt; | 移除任务是否成功。 |
1355 1356 1357 1358

**示例:**

  ```js
A
anyueling 已提交
1359
  downloadTask.remove().then((result) => {
1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370
      if (result) {
          console.info('Download task removed.');
      } else {
          console.error('Failed to remove the download task.');
      }
  }).catch ((err) => {
      console.error('Failed to remove the download task.');
  });
  ```


A
anyueling 已提交
1371
### remove<sup>(deprecated)</sup>
1372

A
anyueling 已提交
1373
remove(callback: AsyncCallback&lt;boolean&gt;): void
1374 1375 1376

移除下载的任务,异步方法,使用callback形式返回结果。

A
anyueling 已提交
1377 1378
>  **说明:** 从API Version 9开始不再维护,建议使用[delete<sup>9+</sup>](#delete9-3)替代。

1379 1380 1381 1382 1383 1384
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

A
anyueling 已提交
1385
  | 参数名 | 类型 | 必填 | 说明 |
1386
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1387
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 移除任务是否成功。 |
1388 1389 1390 1391

**示例:**

  ```js
A
anyueling 已提交
1392
  downloadTask.remove((err, result)=>{
1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405
      if(err) {
          console.error('Failed to remove the download task.');
          return;
      } 
      if (result) {
          console.info('Download task removed.');
      } else {
          console.error('Failed to remove the download task.');
      } 
  });
  ```


A
anyueling 已提交
1406
### query<sup>(deprecated)</sup>
1407

A
anyueling 已提交
1408
query(): Promise&lt;DownloadInfo&gt;
1409 1410 1411

查询下载任务,异步方法,使用promise形式返回DownloadInfo里的信息。

A
anyueling 已提交
1412 1413
>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskInfo<sup>9+</sup>](#gettaskinfo9)替代。

1414 1415 1416 1417
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1418 1419
**返回值:**

A
anyueling 已提交
1420 1421 1422
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;[DownloadInfo](#downloadinfo7)&gt; | 查询下载任务信息。 |
1423 1424 1425 1426

**示例:**

  ```js
A
anyueling 已提交
1427
  downloadTask.query().then((downloadInfo) => {    
1428 1429 1430 1431 1432 1433 1434
      console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
  }) .catch((err) => {
      console.error('Failed to query the download task. Cause:' + err)
  });
  ```


A
anyueling 已提交
1435
### query<sup>(deprecated)</sup>
1436

A
anyueling 已提交
1437
query(callback: AsyncCallback&lt;DownloadInfo&gt;): void
1438 1439 1440

查询下载的任务,异步方法,使用callback形式返回结果。

A
anyueling 已提交
1441 1442
>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskInfo<sup>9+</sup>](#gettaskinfo9-1)替代。

1443 1444 1445 1446 1447 1448
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

A
anyueling 已提交
1449
  | 参数名 | 类型 | 必填 | 说明 |
1450
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1451
  | callback | AsyncCallback&lt;[DownloadInfo](#downloadinfo7)&gt; | 是 | 查询下载任务的回调函数。 |
1452 1453 1454 1455

**示例:**

  ```js
A
anyueling 已提交
1456
  downloadTask.query((err, downloadInfo)=>{
1457 1458 1459 1460 1461 1462 1463 1464 1465
      if(err) {
          console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
      } else {
          console.info('download query success. data:'+ JSON.stringify(downloadInfo));
      }
  });
  ```


A
anyueling 已提交
1466
### queryMimeType<sup>(deprecated)</sup>
1467

A
anyueling 已提交
1468
queryMimeType(): Promise&lt;string&gt;
1469 1470 1471

查询下载的任务的 MimeType,异步方法,使用promise形式返回结果。

A
anyueling 已提交
1472 1473
>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskMimeType<sup>9+</sup>](#gettaskmimetype9)替代。

1474 1475 1476 1477 1478 1479
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**返回值:**

A
anyueling 已提交
1480
  | 类型 | 说明 |
1481
  | -------- | -------- |
A
anyueling 已提交
1482
  | Promise&lt;string&gt; | 查询下载任务的MimeType。 |
1483 1484 1485 1486

**示例:**

  ```js
A
anyueling 已提交
1487
  downloadTask.queryMimeType().then((data) => {    
1488 1489 1490 1491 1492 1493 1494
      console.info('Download task queried. Data:' + JSON.stringify(data));
  }).catch((err) => {
      console.error('Failed to query the download MimeType. Cause:' + JSON.stringify(err))
  });
  ```


A
anyueling 已提交
1495
### queryMimeType<sup>(deprecated)</sup>
1496

A
anyueling 已提交
1497
queryMimeType(callback: AsyncCallback&lt;string&gt;): void;
1498 1499 1500

查询下载的任务的 MimeType,异步方法,使用callback形式返回结果。

A
anyueling 已提交
1501 1502
>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[getTaskMimeType<sup>9+</sup>](#gettaskmimetype9-1)替代。

1503 1504 1505 1506 1507 1508
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

A
anyueling 已提交
1509
  | 参数名 | 类型 | 必填 | 说明 |
1510
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1511
  | callback | AsyncCallback&lt;string&gt; | 是 | 查询下载任务的MimeType的回调函数。 |
1512 1513 1514 1515

**示例:**

  ```js
A
anyueling 已提交
1516
  downloadTask.queryMimeType((err, data)=>{
1517 1518 1519 1520 1521 1522 1523 1524 1525
      if(err) {
          console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
      } else {
          console.info('Download task queried. data:' + JSON.stringify(data));
      }
  });
  ```


A
anyueling 已提交
1526
### pause<sup>(deprecated)</sup>
1527

A
anyueling 已提交
1528
pause(): Promise&lt;void&gt;
1529 1530 1531

暂停下载任务,异步方法,使用promise形式返回结果。

A
anyueling 已提交
1532 1533
>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[suspend<sup>9+</sup>](#suspend9)替代。

1534 1535 1536 1537 1538 1539
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**返回值:**

A
anyueling 已提交
1540
  | 类型 | 说明 |
1541
  | -------- | -------- |
A
anyueling 已提交
1542
  | Promise&lt;void&gt; | 暂停下载任务是否成功。 |
1543 1544 1545 1546

**示例:**

  ```js
A
anyueling 已提交
1547
  downloadTask.pause().then((result) => {    
1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558
      if (result) {
           console.info('Download task paused. ');
      } else {
          console.error('Failed to pause the download task. Cause:' + JSON.stringify(result));
      }
  }).catch((err) => {
      console.error('Failed to pause the download task. Cause:' + JSON.stringify(err));
  });
  ```


A
anyueling 已提交
1559
### pause<sup>(deprecated)</sup>
1560

A
anyueling 已提交
1561 1562 1563
pause(callback: AsyncCallback&lt;void&gt;): void

>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[suspend<sup>9+</sup>](#suspend9-1)替代。
1564 1565 1566 1567 1568 1569 1570 1571 1572

暂停下载任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

A
anyueling 已提交
1573
  | 参数名 | 类型 | 必填 | 说明 |
1574
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1575
  | callback | AsyncCallback&lt;void&gt; | 是 | 暂停下载任务的回调函数。 |
1576 1577 1578 1579

**示例:**

  ```js
A
anyueling 已提交
1580
  downloadTask.pause((err, result)=>{
1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593
      if(err) {
          console.error('Failed to pause the download task. Cause:' + JSON.stringify(err));
          return;
      }
      if (result) {
           console.info('Download task paused. ');
      } else {
          console.error('Failed to pause the download task. Cause:' + JSON.stringify(result));
      }
  });
  ```


A
anyueling 已提交
1594
### resume<sup>(deprecated)</sup>
1595

A
anyueling 已提交
1596
resume(): Promise&lt;void&gt;
1597 1598 1599

重新启动暂停的下载任务,异步方法,使用promise形式返回结果。

A
anyueling 已提交
1600 1601
>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[restore<sup>9+</sup>](#restore9)替代。

1602 1603 1604 1605
**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

1606
**返回值:**
1607

A
anyueling 已提交
1608
  | 类型 | 说明 |
1609
  | -------- | -------- |
A
anyueling 已提交
1610
  | Promise&lt;void&gt; | 重新启动暂停的下载任务是否成功。 |
1611 1612 1613 1614

**示例:**

  ```js
A
anyueling 已提交
1615
  downloadTask.resume().then((result) => {
1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627
      if (result) {
          console.info('Download task resumed.')
      } else {
          console.error('Failed to resume the download task. ');
      }
      console.info('Download task resumed.')
  }).catch((err) => {
      console.error('Failed to resume the download task. Cause:' + err);
  });
  ```


A
anyueling 已提交
1628
### resume<sup>(deprecated)</sup>
1629

A
anyueling 已提交
1630 1631 1632
resume(callback: AsyncCallback&lt;void&gt;): void

>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[restore<sup>9+</sup>](#restore9-1)替代。
1633 1634 1635 1636 1637 1638 1639 1640 1641

重新启动暂停的下载任务,异步方法,使用callback形式返回结果。

**需要权限**:ohos.permission.INTERNET

**系统能力**: SystemCapability.MiscServices.Download

**参数:**

A
anyueling 已提交
1642
  | 参数名 | 类型 | 必填 | 说明 |
1643
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1644
  | callback | AsyncCallback&lt;void&gt; | 是 | 重新启动暂停的下载任务的回调函数。 |
1645 1646 1647 1648

**示例:**

  ```js
A
anyueling 已提交
1649
  downloadTask.resume((err, result)=>{
1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662
      if (err) {
          console.error('Failed to resume the download task. Cause:' + err);
          return;
      } 
      if (result) {
          console.info('Download task resumed.');
      } else {
          console.error('Failed to resume the download task.');
      }
  });
  ```


Z
zengyawen 已提交
1663
## DownloadConfig
1664
下载任务的配置信息。
Z
zengyawen 已提交
1665

A
anyueling 已提交
1666 1667
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1668 1669 1670 1671 1672
**系统能力**: SystemCapability.MiscServices.Download

| 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| url | string | 是 | 资源地址。 |
1673
| header | Object | 否 | 添加要包含在下载请求中的HTTPS标志头。<br/>开发者可以通过header的X-TLS-Version参数指定需要使用的TLS版本(如果不指定,则默认使用CURL_SSLVERSION_TLSv1_2版本,指定则使用指定版本。)<br/>CURL_SSLVERSION_TLSv1_0<br/>CURL_SSLVERSION_TLSv1_1<br/>CURL_SSLVERSION_TLSv1_2<br/>CURL_SSLVERSION_TLSv1_3<br/>通过header的X-Cipher-List参数指定需要使用的密码套件(如果不指定,则默认使用安全密码套件,指定则使用指定密码套件。)<br/>-1.2允许使用的密码套件白名单:<br/>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,<br/>TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_DSS_RSA_WITH_AES_256_GCM_SHA384,<br/>TLS_PSK_WITH_AES_256_GCM_SHA384,TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,<br/>TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,<br/>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,<br/>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,<br/>TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,<br/>TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,<br/>TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CCM,<br/>TLS_DHE_RSA_WITH_AES_256_CCM,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,<br/>TLS_PSK_WITH_AES_256_CCM,TLS_DHE_PSK_WITH_AES_128_CCM,<br/>TLS_DHE_PSK_WITH_AES_256_CCM,TLS_ECDHE_ECDSA_WITH_AES_128_CCM,<br/>TLS_ECDHE_ECDSA_WITH_AES_256_CCM,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256<br/>-1.3允许使用的密码套件白名单:<br/>TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_CCM_SHA256<br/>-1.3新增国密算法套:<br/>TLS_SM4_GCM_SM3,TLS_SM4_CCM_SM3 |
A
anyueling 已提交
1674 1675
| enableMetered | boolean | 否 | 设置是否允许在按流量计费的连接下下载。<br/>-&nbsp;true:是<br/>-&nbsp;false:否 |
| enableRoaming | boolean | 否 | 设置是否允许在漫游网络中下载。 <br/>-&nbsp;true:是<br/>-&nbsp;false:否|
Z
zengyawen 已提交
1676
| description | string | 否 | 设置下载会话的描述。 |
A
anyueling 已提交
1677
| filePath<sup>7+</sup> | string | 否 | 设置下载路径。<br/>-&nbsp;filePath:'/data/storage/el2/base/haps/entry/files/test.txt':将文件存储在绝对路径下。<br/>-&nbsp;FA模型下使用[context](js-apis-inner-app-context.md#contextgetcachedir) 获取应用存储路径,比如:'${featureAbility.getContext().getFilesDir()}/test.txt',并将文件存储在此路径下。<br/>-&nbsp;Stage模型下使用[AbilityContext](js-apis-inner-application-context.md) 类获取文件路径,比如:'${globalThis.abilityContext.tempDir}/test.txt'并将文件存储在此路径下。|
A
anyueling 已提交
1678
| networkType | number | 否 | 设置允许下载的网络类型。<br/>-&nbsp;NETWORK_MOBILE:0x00000001<br/>-&nbsp;NETWORK_WIFI:0x00010000|
A
anyueling 已提交
1679
| title | string | 否 | 设置下载任务名称。 |
1680
| background<sup>9+</sup> | boolean | 否 | 后台任务通知开关,开启后可在通知中显示下载状态。 |
Z
zengyawen 已提交
1681 1682


Z
zengyawen 已提交
1683
## DownloadInfo<sup>7+</sup>
1684
下载任务信息,[query<sup>(deprecated)</sup>](#querydeprecated-1)接口的回调参数。
Z
zengyawen 已提交
1685

A
anyueling 已提交
1686 1687
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1688 1689
**系统能力**: SystemCapability.MiscServices.Download

Z
zengyawen 已提交
1690
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1691
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1692
| downloadId | number | 是 | 下载的文件ID。 |
A
anyueling 已提交
1693
| failedReason | number | 否 | 下载失败原因,可以是任何[下载任务的错误码](#下载任务的错误码)常量。 |
Z
zengyawen 已提交
1694 1695
| fileName | string | 是 | 下载的文件名。 |
| filePath | string | 是 | 存储文件的URI。 |
A
anyueling 已提交
1696 1697
| pausedReason | number | 否 | 会话暂停的原因,可以是任何[下载任务暂停原因](#下载任务暂停原因)常量。 |
| status | number | 是 | 下载状态码,可以是任何[下载任务状态码](#下载任务状态码)常量。 |
Z
zengyawen 已提交
1698
| targetURI | string | 是 | 下载文件的URI。 |
A
anyueling 已提交
1699
| downloadTitle | string | 是 | 下载任务名称。 |
Z
zengyawen 已提交
1700 1701
| downloadTotalBytes | number | 是 | 下载的文件的总大小(int&nbsp;bytes)。 |
| description | string | 是 | 待下载文件的描述信息。 |
1702 1703 1704
| downloadedBytes | number | 是 | 实时下载大小(int&nbsp;&nbsp;bytes)。 |

<!--no_check-->