js-apis-request.md 33.8 KB
Newer Older
Z
zengyawen 已提交
1
# 上传下载
A
修改  
anyueling 已提交
2

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

Z
zengyawen 已提交
5 6 7 8 9 10 11
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块


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


## 限制与约束
A
anyueling 已提交
18

A
anyueling 已提交
19
在开发FA模型下的应用程序时,需要在config.json配置文件中对应用结构进行声明,在config.json文件中增加network标签,属性标识 "cleartextTraffic": true。即:
A
anyueling 已提交
20

A
anyueling 已提交
21
```js
22
var config = {
Z
zengyawen 已提交
23 24 25
  "deviceConfig": {
    "default": {
      "network": {
A
anyueling 已提交
26
        "cleartextTraffic": true
Z
zengyawen 已提交
27
      }
28
      //...
Z
zengyawen 已提交
29
    }
Z
zengyawen 已提交
30
  }
31
}
Z
zengyawen 已提交
32
```
A
anyueling 已提交
33

A
anyueling 已提交
34
在开发stage模型下的应用程序时,不涉及属性标识 "cleartextTraffic"。
A
anyueling 已提交
35

Z
zengyawen 已提交
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


## 常量

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

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

| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| NETWORK_MOBILE | number | 是 | 否 | 使用蜂窝网络时允许下载的位标志。 |
| NETWORK_WIFI | number | 是 | 否 | 使用WLAN时允许下载的位标志。 |
| ERROR_CANNOT_RESUME<sup>7+</sup> | number | 是 | 否 | 某些临时错误导致的恢复下载失败。 |
| ERROR_DEVICE_NOT_FOUND<sup>7+</sup> | number | 是 | 否 | 找不到SD卡等存储设备。 |
| ERROR_FILE_ALREADY_EXISTS<sup>7+</sup> | number | 是 | 否 | 要下载的文件已存在,下载会话不能覆盖现有文件。 |
| ERROR_FILE_ERROR<sup>7+</sup> | number | 是 | 否 | 文件操作失败。 |
| ERROR_HTTP_DATA_ERROR<sup>7+</sup> | number | 是 | 否 | HTTP传输失败。 |
| ERROR_INSUFFICIENT_SPACE<sup>7+</sup> | number | 是 | 否 | 存储空间不足。 |
| ERROR_TOO_MANY_REDIRECTS<sup>7+</sup> | number | 是 | 否 | 网络重定向过多导致的错误。 |
| ERROR_UNHANDLED_HTTP_CODE<sup>7+</sup> | number | 是 | 否 | 无法识别的HTTP代码。 |
| ERROR_UNKNOWN<sup>7+</sup> | number | 是 | 否 | 未知错误。 |
| PAUSED_QUEUED_FOR_WIFI<sup>7+</sup> | number | 是 | 否 | 下载被暂停并等待WLAN连接,因为文件大小超过了使用蜂窝网络的会话允许的最大值。 |
| PAUSED_UNKNOWN<sup>7+</sup> | number | 是 | 否 | 未知原因导致暂停下载。 |
| PAUSED_WAITING_FOR_NETWORK<sup>7+</sup> | number | 是 | 否 | 由于网络问题(例如网络断开)而暂停下载。 |
| PAUSED_WAITING_TO_RETRY<sup>7+</sup> | number | 是 | 否 | 发生网络错误,将重试下载会话。 |
| SESSION_FAILED<sup>7+</sup> | number | 是 | 否 | 下载会话已失败,将不会重试。 |
| SESSION_PAUSED<sup>7+</sup> | number | 是 | 否 | 下载会话已暂停。 |
| SESSION_PENDING<sup>7+</sup> | number | 是 | 否 | 正在调度下载会话。 |
| SESSION_RUNNING<sup>7+</sup> | number | 是 | 否 | 下载会话正在进行中。 |
| SESSION_SUCCESSFUL<sup>7+</sup> | number | 是 | 否 | 下载会话已完成。 |


A
anyueling 已提交
68
## request.upload<sup>6+</sup>
Z
zengyawen 已提交
69 70 71 72 73 74 75 76 77

upload(config: UploadConfig): Promise&lt;UploadTask&gt;

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

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

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

A
anyueling 已提交
78 79
**模型说明**: 此接口仅可在FA模型下使用

80 81 82
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
83
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
84
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
Z
zengyawen 已提交
85

86 87 88
**返回值:**

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

92
**示例:**
Z
zengyawen 已提交
93
  
94
  ```js
95
  let uploadTask;
A
anyueling 已提交
96 97 98 99 100 101 102 103
  let uploadConfig = {
    url: 'https://patch',
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
  };
  request.upload(uploadConfig).then((data) => {
Z
zengyawen 已提交
104 105 106 107 108 109 110
      uploadTask = data;
  }).catch((err) => {
      console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
  })
  ```


A
anyueling 已提交
111
## request.upload<sup>6+</sup>
Z
zengyawen 已提交
112 113 114 115 116 117 118 119 120

upload(config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void

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

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

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

A
anyueling 已提交
121 122
**模型说明**: 此接口仅可在FA模型下使用

123 124 125
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
126
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
127 128
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
  | callback | AsyncCallback&lt;[UploadTask](#uploadtask)&gt; | 否 | 回调函数,异步返回UploadTask对象。 |
Z
zengyawen 已提交
129

130
**示例:**
Z
zengyawen 已提交
131
  
132
  ```js
133
  let uploadTask;
A
anyueling 已提交
134 135 136 137 138 139 140 141
  let uploadConfig = {
    url: 'https://patch',
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
  };
  request.upload(uploadConfig, (err, data) => {
Z
zengyawen 已提交
142 143 144 145 146 147 148
      if (err) {
          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
          return;
      }
      uploadTask = data;
  });
  ```
A
anyueling 已提交
149 150
## request.upload<sup>9+</sup>

A
anyueling 已提交
151
upload(context: BaseContext, config: UploadConfig): Promise&lt;UploadTask&gt;
A
anyueling 已提交
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195

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

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

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

**模型说明**: 此接口仅可在Stage模型下使用

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [BaseContext](#baseContext) | 是 | 基于应用程序的上下文。 |
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
  

**返回值:**

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

**示例:**
  
  ```js
  let uploadTask;
  let uploadConfig = {
    url: 'https://patch',
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: { filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" },
    data: { name: "name123", value: "123" },
  }
  request.upload(globalThis.abilityContext, uploadConfig).then((data) => {
      uploadTask = data;
  }).catch((err) => {
      console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
  })
  ```


## request.upload<sup>9+</sup>

A
anyueling 已提交
196
upload(context: BaseContext, config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
A
anyueling 已提交
197 198 199 200 201 202 203 204 205 206

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

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

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

**模型说明**: 此接口仅可在Stage模型下使用

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

A
anyueling 已提交
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
  | 参数名 | 参数类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [BaseContext](#baseContext) | 是 | 基于应用程序的上下文。 |
  | config | [UploadConfig](#uploadconfig) | 是 | 上传的配置信息。 |
  | callback | AsyncCallback&lt;[UploadTask](#uploadtask)&gt; | 否 | 回调函数,异步返回UploadTask对象。 |

**示例:**
  
  ```js
  let uploadTask;
  let uploadConfig = {
    url: 'https://patch',
    header: { key1: "value1", key2: "value2" },
    method: "POST",
    files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
    data: [{ name: "name123", value: "123" }],
  };
  request.upload(globalThis.abilityContext, uploadConfig, (err, data) => {
      if (err) {
          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
          return;
      }
      uploadTask = data;
  });
  ```
Z
zengyawen 已提交
233 234 235 236 237 238 239 240

## UploadTask

上传任务,使用下列方法前,需要先获取UploadTask对象。


### on('progress')

Z
zengyawen 已提交
241
on(type: 'progress', callback:(uploadedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
242 243 244 245 246 247 248

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

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

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

249 250 251
**参数:**

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

256
  回调函数的参数
Z
zengyawen 已提交
257

258 259 260 261
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| uploadedSize | number | 是 | 当前已上传文件大小,单位为KB。 |
| totalSize | number | 是 | 上传文件的总大小,单位为KB。 |
Z
zengyawen 已提交
262

263
**示例:**
Z
zengyawen 已提交
264
  
265
  ```js
Z
zengyawen 已提交
266
  uploadTask.on('progress', function callback(uploadedSize, totalSize) {
Z
zengyawen 已提交
267 268
      console.info("upload totalSize:" + totalSize + "  uploadedSize:" + uploadedSize);
  }
Z
zengyawen 已提交
269
  );
Z
zengyawen 已提交
270 271 272 273 274
  ```


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

Z
zengyawen 已提交
275
on(type: 'headerReceive', callback:  (header: object) =&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
  | type | string | 是 | 订阅的事件类型,取值为'headerReceive'(接收响应头)。 |
Z
zengyawen 已提交
288
  | callback | function | 是 | HTTP&nbsp;Response&nbsp;Header事件的回调函数。 |
Z
zengyawen 已提交
289 290 291

  回调函数的参数:

292 293 294
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| header | object | 是 | HTTP&nbsp;Response&nbsp;Header。 |
Z
zengyawen 已提交
295

296
**示例:**
Z
zengyawen 已提交
297
  
298
  ```js
Z
zengyawen 已提交
299
  uploadTask.on('headerReceive', function callback(headers){   
Z
zengyawen 已提交
300 301
      console.info("upOnHeader headers:" + JSON.stringify(headers));
  }
Z
zengyawen 已提交
302
  );
Z
zengyawen 已提交
303 304 305 306 307
  ```


### off('progress')

Z
zengyawen 已提交
308
off(type:  'progress',  callback?: (uploadedSize: number, totalSize: number) =&gt;  void): void
Z
zengyawen 已提交
309 310 311 312 313 314 315

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

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

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

316 317 318
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
319
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
320 321
  | type | string | 是 | 取消订阅的事件类型,取值为'progress'(上传的进度信息)。 |
  | callback | function | 否 | 上传任务的回调函数。 |
Z
zengyawen 已提交
322 323 324

  回调函数的参数:

325 326 327 328
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| uploadedSize | number | 是 | 当前已上传文件的大小,单位为KB。 |
| totalSize | number | 是 | 上传文件的总大小,单位为KB。 |
Z
zengyawen 已提交
329

330
**示例:**
Z
zengyawen 已提交
331
  
332
  ```js
Z
zengyawen 已提交
333
  uploadTask.off('progress', function callback(uploadedSize, totalSize) {
Z
zengyawen 已提交
334 335
      console.info('uploadedSize: ' + uploadedSize, 'totalSize: ' + totalSize);
  }
Z
zengyawen 已提交
336
  );
Z
zengyawen 已提交
337 338 339 340 341
  ```


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

Z
zengyawen 已提交
342
off(type: 'headerReceive', callback?: (header: object) =&gt; void): void
Z
zengyawen 已提交
343 344 345 346 347 348 349

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

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

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

350 351 352
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
353
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
354
  | type | string | 是 | 取消订阅的事件类型,取值为'headerReceive'(接收响应头)。 |
Z
zengyawen 已提交
355
  | callback | function | 否 | HTTP&nbsp;Response&nbsp;Header事件的回调函数。 |
Z
zengyawen 已提交
356 357 358

  回调函数的参数:

359 360 361
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| header | object | 是 | HTTP&nbsp;Response&nbsp;Header。 |
Z
zengyawen 已提交
362

363
**示例:**
Z
zengyawen 已提交
364
  
365
  ```js
Z
zengyawen 已提交
366
  uploadTask.off('headerReceive', function callback(headers) {
Z
zengyawen 已提交
367 368
      console.info("upOnHeader headers:" + JSON.stringify(headers));
  }
Z
zengyawen 已提交
369
  );
Z
zengyawen 已提交
370 371 372 373 374 375 376 377 378 379 380 381 382
  ```


### remove

remove(): Promise&lt;boolean&gt;

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

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

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

383 384 385
**返回值:**

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

389
**示例:**
Z
zengyawen 已提交
390
  
391
  ```js
Z
zengyawen 已提交
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413
  uploadTask.remove().then((result) => {
      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));
  });
  ```


### remove

remove(callback: AsyncCallback&lt;boolean&gt;): void

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

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

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

414 415 416
**参数:**

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

420
**示例:**
Z
zengyawen 已提交
421
  
422
  ```js
Z
zengyawen 已提交
423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438
  uploadTask.remove((err, result) => {
      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.');
      }
  });
  ```


## UploadConfig

A
anyueling 已提交
439 440
**需要权限**:ohos.permission.INTERNET

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

Z
zengyawen 已提交
443
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
444
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
445
| url | string | 是 | 资源地址。 |
446 447
| header | object | 是 | 添加要包含在上载请求中的HTTP或HTTPS标志头。 |
| method | string | 是 | 请求方法:POST、PUT。缺省为POST。 |
Z
zengyawen 已提交
448
| files | Array&lt;[File](#file)&gt; | 是 | 要上传的文件列表。请使用&nbsp;multipart/form-data提交。 |
449
| data | Array&lt;[RequestData](#requestdata)&gt; | 是 | 请求的表单数据。 |
Z
zengyawen 已提交
450 451 452 453


## File

A
anyueling 已提交
454 455 456
**需要权限**:ohos.permission.INTERNET

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

Z
zengyawen 已提交
458
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
459
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
460 461
| filename | string | 否 | multipart提交时,请求头中的文件名。 |
| name | string | 否 | multipart提交时,表单项目的名称,缺省为file。 |
Z
zengyawen 已提交
462
| uri | string | 是 | 文件的本地存储路径。<br/>支持“dataability”和“internal”两种协议类型,但“internal”仅支持临时目录,示例:<br/>dataability:///com.domainname.dataability.persondata/person/10/file.txt<br/>internal://cache/path/to/file.txt |
Z
zengyawen 已提交
463
| type | string | 否 | 文件的内容类型,默认根据文件名或路径的后缀获取。 |
Z
zengyawen 已提交
464 465 466 467


## RequestData

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

A
anyueling 已提交
470
**系统能力**: 以下各项对应的系统能力均为SystemCapability.MiscServices.Download
Z
zengyawen 已提交
471
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
472
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
473 474
| name | string | 是 | 表示表单元素的名称。 |
| value | string | 是 | 表示表单元素的值。 |
Z
zengyawen 已提交
475 476


A
anyueling 已提交
477
## request.download<sup>6+</sup>
Z
zengyawen 已提交
478 479 480 481 482 483 484 485 486

download(config: DownloadConfig): Promise&lt;DownloadTask&gt;

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

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

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

A
anyueling 已提交
487 488
**模型说明**: 此接口仅可在FA模型下使用

489 490 491
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
492
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
493
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
Z
zengyawen 已提交
494

495 496 497
**返回值:**

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

501
**示例:**
Z
zengyawen 已提交
502
  
503
  ```js
504
  let downloadTask;
Z
zengyawen 已提交
505 506 507 508 509 510 511 512
  request.download({ url: 'https://xxxx/xxxx.hap' }).then((data) => {
      downloadTask = data;
  }).catch((err) => {
      console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
  })
  ```


A
anyueling 已提交
513
## request.download<sup>6+</sup>
Z
zengyawen 已提交
514 515 516 517 518 519 520 521 522

download(config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void

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

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

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

A
anyueling 已提交
523 524
**模型说明**: 此接口仅可在FA模型下使用

525 526 527
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
528
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
529 530
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
  | callback | AsyncCallback&lt;[DownloadTask](#downloadtask)&gt; | 否 | 下载接口的回调函数。 |
Z
zengyawen 已提交
531

532
**示例:**
Z
zengyawen 已提交
533
  
534
  ```js
535
  let downloadTask;
Z
zengyawen 已提交
536 537 538 539 540 541 542 543 544 545
  request.download({ 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;
  });
  ```

A
anyueling 已提交
546 547
## request.download<sup>9+</sup>

A
anyueling 已提交
548
download(context: BaseContext, config: DownloadConfig): Promise&lt;DownloadTask&gt;
A
anyueling 已提交
549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569

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

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

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

**模型说明**: 此接口仅可在Stage模型下使用

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [BaseContext](#baseContext) | 是 | 基于应用程序的上下文。 |
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |

**返回值:**

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

A
anyueling 已提交
571 572 573 574 575 576 577 578 579 580 581 582 583 584
**示例:**
  
  ```js
  let downloadTask;
  request.download(globalThis.abilityContext, { url: 'https://xxxx/xxxx.hap' }).then((data) => {
      downloadTask = data;
  }).catch((err) => {
      console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
  })
  ```


## request.download<sup>9+</sup>

A
anyueling 已提交
585
download(context: BaseContext, config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void;
A
anyueling 已提交
586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615

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

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

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

**模型说明**: 此接口仅可在Stage模型下使用

**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [BaseContext](#baseContext) | 是 | 基于应用程序的上下文。 |
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
  | callback | AsyncCallback&lt;[DownloadTask](#downloadtask)&gt; | 否 | 下载接口的回调函数。 |

**示例:**
  
  ```js
  let downloadTask;
  request.download(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;
  });
  ```
Z
zengyawen 已提交
616 617 618 619 620 621 622
## DownloadTask

下载任务。


### on('progress')

Z
zengyawen 已提交
623
on(type: 'progress', callback:(receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
624 625 626 627 628 629 630

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

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

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

631 632 633
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
634
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
635 636
  | type | string | 是 | 订阅的事件类型,取值为'progress'(下载的进度信息)。 |
  | callback | function | 是 | 下载的回调函数。 |
Z
zengyawen 已提交
637 638 639

  回调函数的参数:

640 641 642 643
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| receivedSize | number | 是 | 当前下载的进度,单位为KB。 |
| totalSize | number | 是 | 下载文件的总大小,单位为KB。 |
Z
zengyawen 已提交
644

645
**示例:**
Z
zengyawen 已提交
646
  
647
  ```js
648
  downloadTask.on('progress', function download_callback(receivedSize, totalSize) {
Z
zengyawen 已提交
649 650
      console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
  }
Z
zengyawen 已提交
651
  );
Z
zengyawen 已提交
652 653 654 655 656
  ```


### off('progress')

Z
zengyawen 已提交
657
off(type: 'progress', callback?: (receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
658 659 660 661 662 663 664

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

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

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

665 666 667
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
668
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
669 670
  | type | string | 是 | 取消订阅的事件类型,取值为'progress'(下载的进度信息)。 |
  | callback | function | 否 | 下载任务的回调函数。 |
Z
zengyawen 已提交
671 672 673

  回调函数的参数:

674 675 676 677
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| receivedSize | number | 是 | 当前下载的进度。 |
| totalSize | number | 是 | 下载文件的总大小。 |
Z
zengyawen 已提交
678

679
**示例:**
Z
zengyawen 已提交
680
  
681
  ```js
682 683 684
  downloadTask .off('progress', function download_callback(receivedSize, totalSize) {
      console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
  }
Z
zengyawen 已提交
685
  );
Z
zengyawen 已提交
686 687 688
  ```


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

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

Z
zengyawen 已提交
693
开启下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
694 695 696 697 698

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

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

699 700 701
**参数:**

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

706
**示例:**
Z
zengyawen 已提交
707
  
708
  ```js
709 710 711
  downloadTask.on('complete', function callback() {
      console.info('Download task completed.');
  }
Z
zengyawen 已提交
712
  );
Z
zengyawen 已提交
713 714 715
  ```


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

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

Z
zengyawen 已提交
720
取消下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
721 722 723 724 725

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

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

726 727 728
**参数:**

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

733
**示例:**
Z
zengyawen 已提交
734
  
735
  ```js
736 737 738
  downloadTask.off('complete', function callback() {
      console.info('Download task completed.');
  }
Z
zengyawen 已提交
739
  );
Z
zengyawen 已提交
740 741 742 743 744
  ```


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

Z
zengyawen 已提交
745
on(type: 'fail', callback: (err: number) =&gt; void): void
Z
zengyawen 已提交
746 747 748 749 750 751 752

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

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

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

753 754 755
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
756
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
757 758
  | type | string | 是 | 订阅的事件类型,取值为'fail'(下载失败)。 |
  | callback | function | 是 | 下载失败的回调函数。 |
Z
zengyawen 已提交
759 760 761

  回调函数的参数:

762 763 764
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| err | number | 是 | 下载失败的错误码,错误原因见[ERROR.*](#常量)。 |
Z
zengyawen 已提交
765

766
**示例:**
Z
zengyawen 已提交
767
  
768
  ```js 
769 770 771
  downloadTask.on('fail', function callBack(err) {
      console.info('Download task failed. Cause:' + err);
  }
Z
zengyawen 已提交
772
  );
Z
zengyawen 已提交
773 774 775 776 777
  ```


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

Z
zengyawen 已提交
778
off(type: 'fail', callback?: (err: number) =&gt; void): void
Z
zengyawen 已提交
779 780 781 782 783 784 785

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

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

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

786 787 788
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
789
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
790 791
  | type | string | 是 | 取消订阅的事件类型,取值为'fail'(下载失败)。 |
  | callback | function | 否 | 取消下载失败的回调函数。 |
Z
zengyawen 已提交
792 793 794

  回调函数的参数

795 796 797
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| err | number | 是 | 下载失败的错误码。错误原因见[ERROR_*](#常量)。 |
Z
zengyawen 已提交
798

799
**示例:**
Z
zengyawen 已提交
800
  
801
  ```js
802 803 804
  downloadTask.off('fail', function callBack(err) {
      console.info('Download task failed. Cause:' + err);
  } 
Z
zengyawen 已提交
805
  );
Z
zengyawen 已提交
806 807 808 809 810 811 812 813 814 815 816 817 818
  ```


### remove

remove(): Promise&lt;boolean&gt;

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

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

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

819 820 821
**返回值:**

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

825
**示例:**
Z
zengyawen 已提交
826
  
827
  ```js
Z
zengyawen 已提交
828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849
  downloadTask.remove().then((result) => {
      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.');
  });
  ```


### remove

remove(callback: AsyncCallback&lt;boolean&gt;): void

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

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

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

850 851 852
**参数:**

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

856
**示例:**
Z
zengyawen 已提交
857
  
858
  ```js
Z
zengyawen 已提交
859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882
  downloadTask.remove((err, result)=>{
      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.');
      } 
  });
  ```


### query<sup>7+</sup>

query(): Promise&lt;DownloadInfo&gt;

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

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

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

883
**参数:**
Z
zengyawen 已提交
884
    | 类型 | 说明 |
Z
zengyawen 已提交
885
  | -------- | -------- |
Z
zengyawen 已提交
886
  | Promise&lt;[DownloadInfo](#downloadinfo7)&gt; | 查询下载任务信息。 |
Z
zengyawen 已提交
887

888
**示例:**
Z
zengyawen 已提交
889
  
890
  ```js
Z
zengyawen 已提交
891
  downloadTask.query().then((downloadInfo) => {    
Z
zengyawen 已提交
892
      console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
Z
zengyawen 已提交
893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908
  }) .catch((err) => {
      console.error('Failed to query the download task. Cause:' + err)
  });
  ```


### query<sup>7+</sup>

query(callback: AsyncCallback&lt;DownloadInfo&gt;): void

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

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

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

909 910 911
**参数:**

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

915
**示例:**
Z
zengyawen 已提交
916
  
917
  ```js
Z
zengyawen 已提交
918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937
  downloadTask.query((err, downloadInfo)=>{
      if(err) {
          console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
      } else {
          console.info('download query success. data:'+ JSON.stringify(downloadInfo));
      }
  });
  ```


### queryMimeType<sup>7+</sup>

queryMimeType(): Promise&lt;string&gt;

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

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

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

938 939 940
**返回值:**

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

944
**示例:**
Z
zengyawen 已提交
945
  
946
  ```js
Z
zengyawen 已提交
947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964
  downloadTask.queryMimeType().then((data) => {    
      console.info('Download task queried. Data:' + JSON.stringify(data));
  }).catch((err) => {
      console.error('Failed to query the download MimeType. Cause:' + JSON.stringify(err))
  });
  ```


### queryMimeType<sup>7+</sup>

queryMimeType(callback: AsyncCallback&lt;string&gt;): void;

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

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

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

965 966 967
**参数:**

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

971
**示例:**
Z
zengyawen 已提交
972
  
973
  ```js
Z
zengyawen 已提交
974 975 976 977 978 979 980 981 982 983 984 985
  downloadTask.queryMimeType((err, data)=>{
      if(err) {
          console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
      } else {
          console.info('Download task queried. data:' + JSON.stringify(data));
      }
  });
  ```


### pause<sup>7+</sup>

Z
zengyawen 已提交
986
pause(): Promise&lt;void&gt;
Z
zengyawen 已提交
987 988 989 990 991 992 993

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

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

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

994 995 996
**返回值:**

  | 类型 | 说明 |
Z
zengyawen 已提交
997
  | -------- | -------- |
Z
zengyawen 已提交
998
  | Promise&lt;void&gt; | 暂停下载任务是否成功。 |
Z
zengyawen 已提交
999

1000
**示例:**
Z
zengyawen 已提交
1001
  
1002
  ```js
Z
zengyawen 已提交
1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016
  downloadTask.pause().then((result) => {    
      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));
  });
  ```


### pause<sup>7+</sup>

Z
zengyawen 已提交
1017
pause(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
1018 1019 1020 1021 1022 1023 1024

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

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

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

1025 1026 1027
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1028
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1029
  | callback | AsyncCallback&lt;void&gt; | 是 | 暂停下载任务的回调函数。 |
Z
zengyawen 已提交
1030

1031
**示例:**
Z
zengyawen 已提交
1032
  
1033
  ```js
Z
zengyawen 已提交
1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049
  downloadTask.pause((err, result)=>{
      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));
      }
  });
  ```


### resume<sup>7+</sup>

Z
zengyawen 已提交
1050
resume(): Promise&lt;void&gt;
Z
zengyawen 已提交
1051 1052 1053 1054 1055 1056 1057

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

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

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

1058 1059 1060
**参数:**

  | 类型 | 说明 |
Z
zengyawen 已提交
1061
  | -------- | -------- |
Z
zengyawen 已提交
1062
  | Promise&lt;void&gt; | 重新启动暂停的下载任务是否成功。 |
Z
zengyawen 已提交
1063

1064
**示例:**
Z
zengyawen 已提交
1065
  
1066
  ```js
Z
zengyawen 已提交
1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081
  downloadTask.resume().then((result) => {
      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);
  });
  ```


### resume<sup>7+</sup>

Z
zengyawen 已提交
1082
resume(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
1083 1084 1085 1086 1087 1088 1089

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

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

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

1090 1091 1092
**参数:**

  | 参数名 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1093
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1094
  | callback | AsyncCallback&lt;void&gt; | 是 | 重新启动暂停的下载任务的回调函数。 |
Z
zengyawen 已提交
1095

1096
**示例:**
Z
zengyawen 已提交
1097
  
1098
  ```js
Z
zengyawen 已提交
1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114
  downloadTask.resume((err, result)=>{
      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.');
      }
  });
  ```


## DownloadConfig

A
anyueling 已提交
1115 1116
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1117 1118 1119 1120 1121 1122 1123 1124 1125
**系统能力**: SystemCapability.MiscServices.Download

| 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| url | string | 是 | 资源地址。 |
| header | object | 否 | 添加要包含在下载请求中的HTTP或HTTPS标志头。 |
| enableMetered | boolean | 否 | 允许在按流量计费的连接下下载。 |
| enableRoaming | boolean | 否 | 允许在漫游网络中下载。 |
| description | string | 否 | 设置下载会话的描述。 |
1126
| filePath<sup>7+</sup> | string | 否 | 设置下载路径(默认在'internal://cache/'路径下)。<br/>-&nbsp;filePath:'workspace/test.txt':默认路径下创建workspace路径,并将文件存储在workspace路径下。<br/>-&nbsp;filePath:'test.txt':将文件存储在默认路径下。<br/>-&nbsp;filePath:'workspace/':默认路径下创建workspace路径,并将文件存储在workspace路径下。 |
Z
zengyawen 已提交
1127 1128 1129 1130
| networkType | number | 否 | 设置允许下载的网络类型。 |
| title | string | 否 | 设置下载会话标题。 |


Z
zengyawen 已提交
1131
## DownloadInfo<sup>7+</sup>
Z
zengyawen 已提交
1132

A
anyueling 已提交
1133 1134
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1135 1136
**系统能力**: SystemCapability.MiscServices.Download

Z
zengyawen 已提交
1137
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1138
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149
| downloadId | number | 是 | 下载的文件ID。 |
| failedReason | number | 否 | 下载失败原因,可以是任何[ERROR_*](#常量)常量。 |
| fileName | string | 是 | 下载的文件名。 |
| filePath | string | 是 | 存储文件的URI。 |
| pausedReason | number | 否 | 会话暂停的原因,可以是任何[PAUSED_*](#常量)常量。 |
| status | number | 是 | 下载状态代码,可以是任何[SESSION_*](#常量)常量。 |
| targetURI | string | 是 | 下载文件的URI。 |
| downloadTitle | string | 是 | 下载的文件的标题。 |
| downloadTotalBytes | number | 是 | 下载的文件的总大小(int&nbsp;bytes)。 |
| description | string | 是 | 待下载文件的描述信息。 |
| downloadedBytes | number | 是 | 实时下载大小(int&nbsp;&nbsp;bytes)。 |