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

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

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


## 导入模块


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


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

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

## 常量

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

88 89 90
**参数:**

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

A
anyueling 已提交
95

96 97 98
**返回值:**

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

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

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

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

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


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

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

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

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

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

142 143
**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

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


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

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

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

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

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

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

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

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

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

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

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

## UploadTask

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

Z
zengyawen 已提交
271 272 273 274


### on('progress')

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

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

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

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

283 284 285
**参数:**

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

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

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

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

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


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

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

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

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

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

317 318 319
**参数:**

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

  回调函数的参数:

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

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

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


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

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

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

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

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

**参数:**

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

  回调函数的参数

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

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

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

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


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

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

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

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

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

392 393
**参数:**

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

  回调函数的参数:

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

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

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


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

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

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

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

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

426 427
**参数:**

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

  回调函数的参数:

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

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

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

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

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

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

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

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

**参数:**

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

  回调函数的参数

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

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

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

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

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

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

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

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

498 499 500
**返回值:**

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

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

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


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

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

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

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

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

529 530
**参数:**

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

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

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


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

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

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

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

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

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

**返回值:**

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

**示例:**

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


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

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

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

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

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

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

**参数:**

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

**示例:**

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

Z
zengyawen 已提交
619 620
## UploadConfig

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

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

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

A
修改  
anyueling 已提交
633
## TaskState<sup>9+</sup>
A
anyueling 已提交
634 635 636 637 638 639 640 641 642 643

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

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

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

## File

A
anyueling 已提交
647 648
**需要权限**:ohos.permission.INTERNET

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

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


## RequestData

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

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

Z
zengyawen 已提交
665
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
666
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
667 668
| name | string | 是 | 表示表单元素的名称。 |
| value | string | 是 | 表示表单元素的值。 |
Z
zengyawen 已提交
669

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

A
anyueling 已提交
672
downloadFile(context: BaseContext, config: DownloadConfig): Promise&lt;DownloadTask&gt;
Z
zengyawen 已提交
673 674 675 676 677 678 679

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

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

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

680 681 682
**参数:**

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

687 688 689
**返回值:**

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

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

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

702
**示例:**
A
anyueling 已提交
703

704
  ```js
705
  let downloadTask;
A
anyueling 已提交
706 707 708 709 710 711 712 713 714
  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 已提交
715 716 717
  ```


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

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

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

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

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

728 729
**参数:**

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

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

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

745
**示例:**
A
anyueling 已提交
746

747
  ```js
748
  let downloadTask;
A
anyueling 已提交
749 750 751 752 753 754 755 756 757 758 759 760
  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 已提交
761 762
  ```

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

A
anyueling 已提交
765
download(config: DownloadConfig): Promise&lt;DownloadTask&gt;
A
anyueling 已提交
766 767 768

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

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

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

A
anyueling 已提交
773 774 775 776 777 778 779 780 781 782 783 784 785 786 787
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**返回值:**

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

A
anyueling 已提交
789
**示例:**
A
anyueling 已提交
790

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


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

A
anyueling 已提交
803
download(config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void
A
anyueling 已提交
804 805 806

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

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

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

A
anyueling 已提交
811 812 813 814 815 816
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

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

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

Z
zengyawen 已提交
836 837
## DownloadTask

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


### on('progress')

Z
zengyawen 已提交
843
on(type: 'progress', callback:(receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
844 845 846 847 848 849 850

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

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

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

851 852 853
**参数:**

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

  回调函数的参数:

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

865
**示例:**
A
anyueling 已提交
866

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


### off('progress')

Z
zengyawen 已提交
877
off(type: 'progress', callback?: (receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
878 879 880 881 882 883 884

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

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

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

885 886
**参数:**

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

  回调函数的参数:

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

899
**示例:**
A
anyueling 已提交
900

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


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

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

Z
zengyawen 已提交
913
开启下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
914 915 916 917 918

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

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

919 920 921
**参数:**

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

926
**示例:**
A
anyueling 已提交
927

928
  ```js
929 930 931
  downloadTask.on('complete', function callback() {
      console.info('Download task completed.');
  }
Z
zengyawen 已提交
932
  );
Z
zengyawen 已提交
933 934 935
  ```


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

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

Z
zengyawen 已提交
940
取消下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
941 942 943 944 945

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

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

946 947 948
**参数:**

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

953
**示例:**
A
anyueling 已提交
954

955
  ```js
956 957 958
  downloadTask.off('complete', function callback() {
      console.info('Download task completed.');
  }
Z
zengyawen 已提交
959
  );
Z
zengyawen 已提交
960 961 962 963 964
  ```


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

Z
zengyawen 已提交
965
on(type: 'fail', callback: (err: number) =&gt; void): void
Z
zengyawen 已提交
966 967 968 969 970 971 972

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

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

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

973 974 975
**参数:**

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

  回调函数的参数:

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

986
**示例:**
A
anyueling 已提交
987

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


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

Z
zengyawen 已提交
998
off(type: 'fail', callback?: (err: number) =&gt; void): void
Z
zengyawen 已提交
999 1000 1001 1002 1003 1004 1005

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

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

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

1006 1007 1008
**参数:**

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

  回调函数的参数

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

1019
**示例:**
A
anyueling 已提交
1020

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

A
anyueling 已提交
1028
### delete<sup>9+</sup>
Z
zengyawen 已提交
1029

A
anyueling 已提交
1030
delete(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1031 1032 1033 1034 1035 1036 1037

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

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

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

1038 1039 1040
**返回值:**

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

1044
**示例:**
A
anyueling 已提交
1045

1046
  ```js
A
anyueling 已提交
1047
  downloadTask.delete().then((result) => {
Z
zengyawen 已提交
1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058
      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 已提交
1059
### delete<sup>9+</sup>
Z
zengyawen 已提交
1060

A
anyueling 已提交
1061
delete(callback: AsyncCallback&lt;boolean&gt;): void
Z
zengyawen 已提交
1062 1063 1064 1065 1066 1067 1068

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

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

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

1069 1070
**参数:**

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

1075
**示例:**
A
anyueling 已提交
1076

1077
  ```js
A
anyueling 已提交
1078
  downloadTask.delete((err, result)=>{
Z
zengyawen 已提交
1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091
      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 已提交
1092
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1093

A
anyueling 已提交
1094
getTaskInfo(): Promise&lt;DownloadInfo&gt;
Z
zengyawen 已提交
1095 1096 1097 1098 1099 1100 1101

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

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

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

1102 1103 1104
**返回值:**

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

1108
**示例:**
A
anyueling 已提交
1109

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


A
anyueling 已提交
1119
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1120

A
anyueling 已提交
1121
getTaskInfo(callback: AsyncCallback&lt;DownloadInfo&gt;): void
Z
zengyawen 已提交
1122 1123 1124 1125 1126 1127 1128

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

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

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

1129 1130
**参数:**

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

1135
**示例:**
A
anyueling 已提交
1136

1137
  ```js
A
anyueling 已提交
1138
  downloadTask.getTaskInfo((err, downloadInfo)=>{
Z
zengyawen 已提交
1139 1140 1141 1142 1143 1144 1145 1146 1147
      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 已提交
1148
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1149

A
anyueling 已提交
1150
getTaskMimeType(): Promise&lt;string&gt;
Z
zengyawen 已提交
1151 1152 1153 1154 1155 1156 1157

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

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

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

1158 1159 1160
**返回值:**

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

1164
**示例:**
A
anyueling 已提交
1165

1166
  ```js
A
anyueling 已提交
1167
  downloadTask.getTaskMimeType().then((data) => {    
Z
zengyawen 已提交
1168 1169 1170 1171 1172 1173 1174
      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 已提交
1175
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1176

A
anyueling 已提交
1177
getTaskMimeType(callback: AsyncCallback&lt;string&gt;): void;
Z
zengyawen 已提交
1178 1179 1180 1181 1182 1183 1184

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

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

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

1185 1186
**参数:**

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

1191
**示例:**
A
anyueling 已提交
1192

1193
  ```js
A
anyueling 已提交
1194
  downloadTask.getTaskMimeType((err, data)=>{
Z
zengyawen 已提交
1195 1196 1197 1198 1199 1200 1201 1202 1203
      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 已提交
1204
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1205

A
anyueling 已提交
1206
suspend(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1207 1208 1209 1210 1211 1212 1213

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

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

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

1214 1215 1216
**返回值:**

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

1220
**示例:**
A
anyueling 已提交
1221

1222
  ```js
A
anyueling 已提交
1223
  downloadTask.suspend().then((result) => {    
Z
zengyawen 已提交
1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234
      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 已提交
1235
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1236

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

Z
zengyawen 已提交
1239 1240 1241 1242 1243 1244
暂停下载任务,异步方法,使用callback形式返回结果。

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

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

1245 1246
**参数:**

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

1251
**示例:**
A
anyueling 已提交
1252

1253
  ```js
A
anyueling 已提交
1254
  downloadTask.suspend((err, result)=>{
Z
zengyawen 已提交
1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267
      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 已提交
1268
### restore<sup>9+</sup>
Z
zengyawen 已提交
1269

A
anyueling 已提交
1270
restore(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1271 1272 1273 1274 1275 1276 1277

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

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

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

1278
**返回值:**
1279 1280

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

1284
**示例:**
A
anyueling 已提交
1285

1286
  ```js
A
anyueling 已提交
1287
  downloadTask.restore().then((result) => {
Z
zengyawen 已提交
1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299
      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 已提交
1300
### restore<sup>9+</sup>
Z
zengyawen 已提交
1301

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

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

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

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

1310 1311
**参数:**

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

1316
**示例:**
A
anyueling 已提交
1317

1318
  ```js
A
anyueling 已提交
1319
  downloadTask.restore((err, result)=>{
Z
zengyawen 已提交
1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332
      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.');
      }
  });
  ```


1333

A
anyueling 已提交
1334 1335 1336
### remove<sup>(deprecated)</sup>

remove(): Promise&lt;boolean&gt;
1337 1338 1339

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

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

1342 1343 1344 1345 1346 1347
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
1348
  | 类型 | 说明 |
1349
  | -------- | -------- |
A
anyueling 已提交
1350
  | Promise&lt;boolean&gt; | 移除任务是否成功。 |
1351 1352 1353 1354

**示例:**

  ```js
A
anyueling 已提交
1355
  downloadTask.remove().then((result) => {
1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366
      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 已提交
1367
### remove<sup>(deprecated)</sup>
1368

A
anyueling 已提交
1369
remove(callback: AsyncCallback&lt;boolean&gt;): void
1370 1371 1372

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

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

1375 1376 1377 1378 1379 1380
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1388
  downloadTask.remove((err, result)=>{
1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401
      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 已提交
1402
### query<sup>(deprecated)</sup>
1403

A
anyueling 已提交
1404
query(): Promise&lt;DownloadInfo&gt;
1405 1406 1407

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

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

1410 1411 1412 1413
**需要权限**:ohos.permission.INTERNET

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

1414 1415
**返回值:**

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

**示例:**

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


A
anyueling 已提交
1431
### query<sup>(deprecated)</sup>
1432

A
anyueling 已提交
1433
query(callback: AsyncCallback&lt;DownloadInfo&gt;): void
1434 1435 1436

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

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

1439 1440 1441 1442 1443 1444
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1452
  downloadTask.query((err, downloadInfo)=>{
1453 1454 1455 1456 1457 1458 1459 1460 1461
      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 已提交
1462
### queryMimeType<sup>(deprecated)</sup>
1463

A
anyueling 已提交
1464
queryMimeType(): Promise&lt;string&gt;
1465 1466 1467

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

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

1470 1471 1472 1473 1474 1475
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
1476
  | 类型 | 说明 |
1477
  | -------- | -------- |
A
anyueling 已提交
1478
  | Promise&lt;string&gt; | 查询下载任务的MimeType。 |
1479 1480 1481 1482

**示例:**

  ```js
A
anyueling 已提交
1483
  downloadTask.queryMimeType().then((data) => {    
1484 1485 1486 1487 1488 1489 1490
      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 已提交
1491
### queryMimeType<sup>(deprecated)</sup>
1492

A
anyueling 已提交
1493
queryMimeType(callback: AsyncCallback&lt;string&gt;): void;
1494 1495 1496

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

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

1499 1500 1501 1502 1503 1504
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1512
  downloadTask.queryMimeType((err, data)=>{
1513 1514 1515 1516 1517 1518 1519 1520 1521
      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 已提交
1522
### pause<sup>(deprecated)</sup>
1523

A
anyueling 已提交
1524
pause(): Promise&lt;void&gt;
1525 1526 1527

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

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

1530 1531 1532 1533 1534 1535
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
1536
  | 类型 | 说明 |
1537
  | -------- | -------- |
A
anyueling 已提交
1538
  | Promise&lt;void&gt; | 暂停下载任务是否成功。 |
1539 1540 1541 1542

**示例:**

  ```js
A
anyueling 已提交
1543
  downloadTask.pause().then((result) => {    
1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554
      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 已提交
1555
### pause<sup>(deprecated)</sup>
1556

A
anyueling 已提交
1557 1558 1559
pause(callback: AsyncCallback&lt;void&gt;): void

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

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

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

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1576
  downloadTask.pause((err, result)=>{
1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589
      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 已提交
1590
### resume<sup>(deprecated)</sup>
1591

A
anyueling 已提交
1592
resume(): Promise&lt;void&gt;
1593 1594 1595

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

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

1598 1599 1600 1601
**需要权限**:ohos.permission.INTERNET

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

1602
**返回值:**
1603

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

**示例:**

  ```js
A
anyueling 已提交
1611
  downloadTask.resume().then((result) => {
1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623
      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 已提交
1624
### resume<sup>(deprecated)</sup>
1625

A
anyueling 已提交
1626 1627 1628
resume(callback: AsyncCallback&lt;void&gt;): void

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

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

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

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

**参数:**

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

**示例:**

  ```js
A
anyueling 已提交
1645
  downloadTask.resume((err, result)=>{
1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658
      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 已提交
1659 1660
## DownloadConfig

A
anyueling 已提交
1661 1662
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1663 1664 1665 1666 1667
**系统能力**: SystemCapability.MiscServices.Download

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


Z
zengyawen 已提交
1678
## DownloadInfo<sup>7+</sup>
Z
zengyawen 已提交
1679

A
anyueling 已提交
1680 1681
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1682 1683
**系统能力**: SystemCapability.MiscServices.Download

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