js-apis-request.md 53.9 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 19
import request from '@ohos.request';
```


## 限制与约束

A
anyueling 已提交
20
上传目前仅支持HTTP请求,不支持HTTPS。
21
下载服务器需要支持HTTP协议的head方法,能够通过Content-length获取下载数据大小,否则下载任务失败,可通过[on('fail')<sup>7+</sup>](#onfail7)查看失败原因。
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
上传,异步方法,使用promise形式返回结果。通过[on('complete'|'fail')<sup>9+</sup>](#oncomplete--fail9)可获取任务上传时的错误信息。
Z
zengyawen 已提交
83 84 85 86 87

**需要权限**: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
上传,异步方法,使用callback形式返回结果。通过[on('complete'|'fail')<sup>9+</sup>](#oncomplete--fail9)可获取任务上传时的错误信息。
Z
zengyawen 已提交
137 138 139 140 141

**需要权限**: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
下载,异步方法,使用promise形式返回结果。通过[on('complete'|'pause'|'remove')<sup>7+</sup>](#oncompletepauseremove7)可获取任务下载时的状态信息,包括任务完成、暂停或移除。通过[on('fail')<sup>7+</sup>](#onfail7)可获取任务下载时的错误信息。

Z
zengyawen 已提交
680 681 682 683 684

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

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

685 686 687
**参数:**

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

692 693 694
**返回值:**

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

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

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

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

709
  ```js
710
  let downloadTask;
A
anyueling 已提交
711 712 713 714 715 716 717 718 719
  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 已提交
720 721 722
  ```


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

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

727 728
下载,异步方法,使用callback形式返回结果。通过[on('complete'|'pause'|'remove')<sup>7+</sup>](#oncompletepauseremove7)可获取任务下载时的状态信息,包括任务完成、暂停或移除。通过[on('fail')<sup>7+</sup>](#onfail7)可获取任务下载时的错误信息。

Z
zengyawen 已提交
729 730 731 732 733

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

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

734 735
**参数:**

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

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

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

751
**示例:**
A
anyueling 已提交
752

753
  ```js
754
  let downloadTask;
A
anyueling 已提交
755 756 757 758 759 760 761 762 763 764 765 766
  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 已提交
767 768
  ```

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

A
anyueling 已提交
795
**示例:**
A
anyueling 已提交
796

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


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

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

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

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

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

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

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

**参数:**

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

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

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

Z
zengyawen 已提交
842 843
## DownloadTask

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


### on('progress')

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

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

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

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

857 858 859
**参数:**

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

  回调函数的参数:

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

871
**示例:**
A
anyueling 已提交
872

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


### off('progress')

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

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

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

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

891 892
**参数:**

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

  回调函数的参数:

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

905
**示例:**
A
anyueling 已提交
906

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


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

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

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

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

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

925 926 927
**参数:**

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

932
**示例:**
A
anyueling 已提交
933

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


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

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

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

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

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

952 953 954
**参数:**

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

959
**示例:**
A
anyueling 已提交
960

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


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

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

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

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

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

979 980 981
**参数:**

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

  回调函数的参数:

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

992
**示例:**
A
anyueling 已提交
993

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


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

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

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

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

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

1012 1013 1014
**参数:**

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

  回调函数的参数

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

1025
**示例:**
A
anyueling 已提交
1026

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

A
anyueling 已提交
1034
### delete<sup>9+</sup>
Z
zengyawen 已提交
1035

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

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

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

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

1044 1045 1046
**返回值:**

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

1050
**示例:**
A
anyueling 已提交
1051

1052
  ```js
A
anyueling 已提交
1053
  downloadTask.delete().then((result) => {
Z
zengyawen 已提交
1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064
      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 已提交
1065
### delete<sup>9+</sup>
Z
zengyawen 已提交
1066

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

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

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

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

1075 1076
**参数:**

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

1081
**示例:**
A
anyueling 已提交
1082

1083
  ```js
A
anyueling 已提交
1084
  downloadTask.delete((err, result)=>{
Z
zengyawen 已提交
1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097
      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 已提交
1098
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1099

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

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

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

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

1108 1109 1110
**返回值:**

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

1114
**示例:**
A
anyueling 已提交
1115

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


A
anyueling 已提交
1125
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1126

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

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

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

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

1135 1136
**参数:**

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

1141
**示例:**
A
anyueling 已提交
1142

1143
  ```js
A
anyueling 已提交
1144
  downloadTask.getTaskInfo((err, downloadInfo)=>{
Z
zengyawen 已提交
1145 1146 1147 1148 1149 1150 1151 1152 1153
      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 已提交
1154
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1155

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

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

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

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

1164 1165 1166
**返回值:**

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

1170
**示例:**
A
anyueling 已提交
1171

1172
  ```js
A
anyueling 已提交
1173
  downloadTask.getTaskMimeType().then((data) => {    
Z
zengyawen 已提交
1174 1175 1176 1177 1178 1179 1180
      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 已提交
1181
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1182

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

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

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

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

1191 1192
**参数:**

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

1197
**示例:**
A
anyueling 已提交
1198

1199
  ```js
A
anyueling 已提交
1200
  downloadTask.getTaskMimeType((err, data)=>{
Z
zengyawen 已提交
1201 1202 1203 1204 1205 1206 1207 1208 1209
      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 已提交
1210
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1211

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

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

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

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

1220 1221 1222
**返回值:**

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

1226
**示例:**
A
anyueling 已提交
1227

1228
  ```js
A
anyueling 已提交
1229
  downloadTask.suspend().then((result) => {    
Z
zengyawen 已提交
1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240
      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 已提交
1241
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1242

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

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

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

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

1251 1252
**参数:**

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

1257
**示例:**
A
anyueling 已提交
1258

1259
  ```js
A
anyueling 已提交
1260
  downloadTask.suspend((err, result)=>{
Z
zengyawen 已提交
1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273
      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 已提交
1274
### restore<sup>9+</sup>
Z
zengyawen 已提交
1275

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

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

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

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

1284
**返回值:**
1285 1286

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

1290
**示例:**
A
anyueling 已提交
1291

1292
  ```js
A
anyueling 已提交
1293
  downloadTask.restore().then((result) => {
Z
zengyawen 已提交
1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305
      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 已提交
1306
### restore<sup>9+</sup>
Z
zengyawen 已提交
1307

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

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

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

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

1316 1317
**参数:**

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

1322
**示例:**
A
anyueling 已提交
1323

1324
  ```js
A
anyueling 已提交
1325
  downloadTask.restore((err, result)=>{
Z
zengyawen 已提交
1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338
      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.');
      }
  });
  ```


1339

A
anyueling 已提交
1340 1341 1342
### remove<sup>(deprecated)</sup>

remove(): Promise&lt;boolean&gt;
1343 1344 1345

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

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

1348 1349 1350 1351 1352 1353
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

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

**示例:**

  ```js
A
anyueling 已提交
1361
  downloadTask.remove().then((result) => {
1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372
      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 已提交
1373
### remove<sup>(deprecated)</sup>
1374

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

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

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

1381 1382 1383 1384 1385 1386
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1394
  downloadTask.remove((err, result)=>{
1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407
      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 已提交
1408
### query<sup>(deprecated)</sup>
1409

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

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

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

1416 1417 1418 1419
**需要权限**:ohos.permission.INTERNET

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

1420 1421
**返回值:**

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

**示例:**

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


A
anyueling 已提交
1437
### query<sup>(deprecated)</sup>
1438

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

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

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

1445 1446 1447 1448 1449 1450
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1458
  downloadTask.query((err, downloadInfo)=>{
1459 1460 1461 1462 1463 1464 1465 1466 1467
      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 已提交
1468
### queryMimeType<sup>(deprecated)</sup>
1469

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

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

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

1476 1477 1478 1479 1480 1481
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

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

**示例:**

  ```js
A
anyueling 已提交
1489
  downloadTask.queryMimeType().then((data) => {    
1490 1491 1492 1493 1494 1495 1496
      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 已提交
1497
### queryMimeType<sup>(deprecated)</sup>
1498

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

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

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

1505 1506 1507 1508 1509 1510
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1518
  downloadTask.queryMimeType((err, data)=>{
1519 1520 1521 1522 1523 1524 1525 1526 1527
      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 已提交
1528
### pause<sup>(deprecated)</sup>
1529

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

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

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

1536 1537 1538 1539 1540 1541
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

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

**示例:**

  ```js
A
anyueling 已提交
1549
  downloadTask.pause().then((result) => {    
1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560
      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 已提交
1561
### pause<sup>(deprecated)</sup>
1562

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

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

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

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

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1582
  downloadTask.pause((err, result)=>{
1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
      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 已提交
1596
### resume<sup>(deprecated)</sup>
1597

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

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

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

1604 1605 1606 1607
**需要权限**:ohos.permission.INTERNET

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

1608
**返回值:**
1609

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

**示例:**

  ```js
A
anyueling 已提交
1617
  downloadTask.resume().then((result) => {
1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629
      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 已提交
1630
### resume<sup>(deprecated)</sup>
1631

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

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

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

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

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1651
  downloadTask.resume((err, result)=>{
1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664
      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 已提交
1665
## DownloadConfig
1666
下载任务的配置信息。
Z
zengyawen 已提交
1667

A
anyueling 已提交
1668 1669
**需要权限**:ohos.permission.INTERNET

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

| 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| url | string | 是 | 资源地址。 |
1675
| 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 已提交
1676 1677
| enableMetered | boolean | 否 | 设置是否允许在按流量计费的连接下下载。<br/>-&nbsp;true:是<br/>-&nbsp;false:否 |
| enableRoaming | boolean | 否 | 设置是否允许在漫游网络中下载。 <br/>-&nbsp;true:是<br/>-&nbsp;false:否|
Z
zengyawen 已提交
1678
| description | string | 否 | 设置下载会话的描述。 |
J
Jeam_wang 已提交
1679
| 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 已提交
1680
| networkType | number | 否 | 设置允许下载的网络类型。<br/>-&nbsp;NETWORK_MOBILE:0x00000001<br/>-&nbsp;NETWORK_WIFI:0x00010000|
A
anyueling 已提交
1681
| title | string | 否 | 设置下载任务名称。 |
1682
| background<sup>9+</sup> | boolean | 否 | 后台任务通知开关,开启后可在通知中显示下载状态。 |
Z
zengyawen 已提交
1683 1684


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

A
anyueling 已提交
1688 1689
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1690 1691
**系统能力**: SystemCapability.MiscServices.Download

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

<!--no_check-->