js-apis-request.md 53.8 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 20 21 22
import request from '@ohos.request';
```

## 常量

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

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

A
anyueling 已提交
23 24 25 26 27 28 29 30 31
### 网络类型
下载支持自定义网络类型,可以在[DownloadConfig](#downloadconfig)中通过networkType配置成以下网络类型。

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

### 下载任务的错误码
32
下载[on('fail')<sup>7+</sup>](#onfail7)事件callback的错误参数、[getTaskInfo<sup>9+</sup>](#gettaskinfo9)返回值的failedReason字段取值。
A
anyueling 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| 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   | 网络类型不匹配。 |


### 下载任务暂停原因
50
下载相关[getTaskInfo<sup>9+</sup>](#gettaskinfo9)返回值的pausedReason字段取值。
A
anyueling 已提交
51 52 53 54 55 56 57 58 59 60

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| 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   | 未知原因导致暂停下载。 |

### 下载任务状态码
61
下载相关[getTaskInfo<sup>9+</sup>](#gettaskinfo9)返回值的status字段取值。
A
anyueling 已提交
62 63 64 65 66 67 68 69

| 名称 | 参数类型 | 数值 | 说明 |
| -------- | -------- | -------- | -------- |
| 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 已提交
70 71


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

A
anyueling 已提交
74
uploadFile(context: BaseContext, config: UploadConfig): Promise&lt;UploadTask&gt;
Z
zengyawen 已提交
75

76
上传,异步方法,使用promise形式返回结果。通过[on('complete'|'fail')<sup>9+</sup>](#oncomplete--fail9)可获取任务上传时的错误信息。
Z
zengyawen 已提交
77 78 79 80 81

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

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

82 83 84
**参数:**

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

A
anyueling 已提交
89

90 91 92
**返回值:**

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

A
anyueling 已提交
96 97 98 99 100 101 102
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

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

103
**示例:**
A
anyueling 已提交
104

105
  ```js
106
  let uploadTask;
A
anyueling 已提交
107
  let uploadConfig = {
A
anyueling 已提交
108
    url: 'http://patch',
A
anyueling 已提交
109 110 111 112 113
    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 已提交
114 115
  try {
    request.uploadFile(globalThis.abilityContext, uploadConfig).then((data) => {
Z
zengyawen 已提交
116
      uploadTask = data;
A
anyueling 已提交
117 118 119 120 121 122
    }).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 已提交
123 124 125
  ```


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

A
anyueling 已提交
128
uploadFile(context: BaseContext, config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
Z
zengyawen 已提交
129

130
上传,异步方法,使用callback形式返回结果。通过[on('complete'|'fail')<sup>9+</sup>](#oncomplete--fail9)可获取任务上传时的错误信息。
Z
zengyawen 已提交
131 132 133 134 135

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

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

136 137
**参数:**

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

A
anyueling 已提交
144 145 146 147 148 149 150
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

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

151
**示例:**
A
anyueling 已提交
152

153
  ```js
154
  let uploadTask;
A
anyueling 已提交
155
  let uploadConfig = {
A
anyueling 已提交
156
    url: 'http://patch',
A
anyueling 已提交
157 158 159 160 161
    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 已提交
162 163
  try {
    request.uploadFile(globalThis.abilityContext, uploadConfig, (err, data) => {
Z
zengyawen 已提交
164 165 166 167 168
      if (err) {
          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
          return;
      }
      uploadTask = data;
A
anyueling 已提交
169 170 171 172
    });
  } catch (err) {
    console.error('err.code : ' + err.code + ', err.message : ' + err.message);
  }
Z
zengyawen 已提交
173
  ```
A
anyueling 已提交
174

A
anyueling 已提交
175 176 177
## request.upload<sup>(deprecated)</sup>

upload(config: UploadConfig): Promise&lt;UploadTask&gt;
A
anyueling 已提交
178 179 180

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

A
anyueling 已提交
181 182 183
**模型约束**:此接口仅可在FA模型下使用

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

A
anyueling 已提交
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**返回值:**

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

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

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


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

A
anyueling 已提交
222
upload(config: UploadConfig, callback: AsyncCallback&lt;UploadTask&gt;): void
A
anyueling 已提交
223 224 225

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

A
anyueling 已提交
226 227 228
**模型约束**:此接口仅可在FA模型下使用

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

A
anyueling 已提交
230 231 232 233 234
**需要权限**:ohos.permission.INTERNET

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

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

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

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

A
anyueling 已提交
243 244 245
  ```js
  let uploadTask;
  let uploadConfig = {
A
anyueling 已提交
246
    url: 'http://patch',
A
anyueling 已提交
247 248 249 250 251
    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 已提交
252
  request.upload(uploadConfig, (err, data) => {
A
anyueling 已提交
253 254 255 256 257 258 259
      if (err) {
          console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
          return;
      }
      uploadTask = data;
  });
  ```
Z
zengyawen 已提交
260 261 262

## UploadTask

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

Z
zengyawen 已提交
265 266 267 268


### on('progress')

Z
zengyawen 已提交
269
on(type: 'progress', callback:(uploadedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
270

271
订阅上传任务进度监听,同步方法,使用callback形式返回结果。
Z
zengyawen 已提交
272 273 274 275 276

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

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

277 278 279
**参数:**

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

284
  回调函数的参数
Z
zengyawen 已提交
285

286 287
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
A
anyueling 已提交
288 289
| uploadedSize | number | 是 | 当前已上传文件大小,单位为B。 |
| totalSize | number | 是 | 上传文件的总大小,单位为B。 |
Z
zengyawen 已提交
290

291
**示例:**
A
anyueling 已提交
292

293
  ```js
294
  let upProgressCallback = (uploadedSize, totalSize) => {
Z
zengyawen 已提交
295
      console.info("upload totalSize:" + totalSize + "  uploadedSize:" + uploadedSize);
296 297
  };
  uploadTask.on('progress', upProgressCallback);
Z
zengyawen 已提交
298 299 300 301 302
  ```


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

Z
zengyawen 已提交
303
on(type: 'headerReceive', callback:  (header: object) =&gt; void): void
Z
zengyawen 已提交
304

305
订阅上传任务HTTP标头监听,同步方法,使用callback形式返回结果。
Z
zengyawen 已提交
306 307 308 309 310

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

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

311 312 313
**参数:**

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

  回调函数的参数:

320 321 322
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| header | object | 是 | HTTP&nbsp;Response&nbsp;Header。 |
Z
zengyawen 已提交
323

324
**示例:**
A
anyueling 已提交
325

326
  ```js
327
  let headerCallback = (headers) => {
Z
zengyawen 已提交
328
      console.info("upOnHeader headers:" + JSON.stringify(headers));
329 330
  };
  uploadTask.on('headerReceive', headerCallback);
Z
zengyawen 已提交
331 332 333
  ```


A
修改  
anyueling 已提交
334
### on('complete' | 'fail')<sup>9+</sup>
A
anyueling 已提交
335 336 337

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

338
订阅上传任务完成或失败监听,同步方法,使用callback形式返回结果。
A
anyueling 已提交
339 340 341 342 343 344 345 346 347 348

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

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

**参数:**

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

  回调函数的参数

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

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

A
anyueling 已提交
359
  ```js
360
  let upCompleteCallback = (taskStates) => {
A
修改  
anyueling 已提交
361
    for (let i = 0; i < taskStates.length; i++ ) {
362
        console.info("upOnComplete taskState:" + JSON.stringify(taskStates[i]));
A
anyueling 已提交
363
    }
364
  };
C
cy7717 已提交
365
  uploadTask.on('complete', upCompleteCallback);
A
anyueling 已提交
366

367
  let upFailCallback = (taskStates) => {
A
修改  
anyueling 已提交
368 369
    for (let i = 0; i < taskStates.length; i++ ) {
      console.info("upOnFail taskState:" + JSON.stringify(taskStates[i]));
A
anyueling 已提交
370
    }
371 372
  };
  uploadTask.on('fail', upFailCallback);
A
anyueling 已提交
373 374 375
  ```


Z
zengyawen 已提交
376 377
### off('progress')

Z
zengyawen 已提交
378
off(type:  'progress',  callback?: (uploadedSize: number, totalSize: number) =&gt;  void): void
Z
zengyawen 已提交
379

380
删除上传任务进度监听,同步方法。
Z
zengyawen 已提交
381 382 383 384 385

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

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

386 387
**参数:**

388
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
389
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
390
  | type | string | 是 | 取消订阅的事件类型,取值为'progress'(上传的进度信息)。 |
391
  | callback | function | 否 | 需要删除的上传任务进度的回调函数。<br/>uploadedSize:当前已上传文件的大小,单位为B。<br/>totalSize:上传文件的总大小,单位为B。 |
Z
zengyawen 已提交
392

393
**示例:**
A
anyueling 已提交
394

395
  ```js
C
cy7717 已提交
396 397 398
  let upProgressCallback = (uploadedSize, totalSize) => {
      console.info('Upload delete progress notification.' + 'totalSize:' + totalSize + 'uploadedSize:' + uploadedSize);
  };
399
  uploadTask.off('progress', upProgressCallback);
Z
zengyawen 已提交
400 401 402 403 404
  ```


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

Z
zengyawen 已提交
405
off(type: 'headerReceive', callback?: (header: object) =&gt; void): void
Z
zengyawen 已提交
406

407
删除上传任务HTTP标头监听,同步方法。
Z
zengyawen 已提交
408 409 410 411 412

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

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

413 414
**参数:**

415
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
416
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
417
  | type | string | 是 | 取消订阅的事件类型,取值为'headerReceive'(接收响应头)。 |
418
  | callback | function | 否 | HTTP&nbsp;Response&nbsp;需要删除的Header事件的回调函数。<br/>header:HTTP&nbsp;Response&nbsp;Header。 |
Z
zengyawen 已提交
419

420
**示例:**
A
anyueling 已提交
421

422
  ```js
C
cy7717 已提交
423
  let headerCallback = (header) => {
C
cy7717 已提交
424
      console.info('Upload delete headerReceive notification.' + 'header: ${JSON.stringify(header)}');
C
cy7717 已提交
425
  };
426
  uploadTask.off('headerReceive', headerCallback);
Z
zengyawen 已提交
427 428
  ```

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

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

433
删除上传任务完成或失败监听,同步方法。
A
anyueling 已提交
434 435 436 437 438 439 440 441 442 443

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

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

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 订阅的事件类型,取值为'complete',表示上传任务完成;取值为'fail',表示上传任务失败。|
444
  | callback | Callback&lt;Array&lt;TaskState&gt;&gt; | 否 | 需要删除的上传任务完成或失败的回调函数。<br/>taskstates:上传任务返回结果 |
A
anyueling 已提交
445 446

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

A
anyueling 已提交
448
  ```js
C
cy7717 已提交
449 450 451 452 453 454
  let upCompleteCallback = (taskStates) => {
    console.info('Upload delete complete notification.');
    for (let i = 0; i < taskStates.length; i++ ) {
        console.info('taskState:' + JSON.stringify(taskStates[i]));
    }
  };
455
  uploadTask.off('complete', upCompleteCallback);
A
anyueling 已提交
456

C
cy7717 已提交
457 458 459 460 461 462
  let upFailCallback = (taskStates) => {
    console.info('Upload delete fail notification.');
    for (let i = 0; i < taskStates.length; i++ ) {
      console.info('taskState:' + JSON.stringify(taskStates[i]));
    }
  };
463
  uploadTask.off('fail', upFailCallback);
A
anyueling 已提交
464 465
  ```

A
anyueling 已提交
466 467
### delete<sup>9+</sup>
delete(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
468 469 470 471 472 473 474

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

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

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

475 476 477
**返回值:**

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

481
**示例:**
A
anyueling 已提交
482

483
  ```js
A
anyueling 已提交
484
  uploadTask.delete().then((result) => {
Z
zengyawen 已提交
485 486 487 488 489 490 491 492 493 494 495
      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 已提交
496
### delete<sup>9+</sup>
Z
zengyawen 已提交
497

A
anyueling 已提交
498
delete(callback: AsyncCallback&lt;boolean&gt;): void
Z
zengyawen 已提交
499 500 501 502 503 504 505

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

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

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

506 507
**参数:**

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

512
**示例:**
A
anyueling 已提交
513

514
  ```js
A
anyueling 已提交
515
  uploadTask.delete((err, result) => {
Z
zengyawen 已提交
516 517 518 519 520 521 522 523 524 525 526 527 528
      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 已提交
529
### remove<sup>(deprecated)</sup>
530

A
anyueling 已提交
531
remove(): Promise&lt;boolean&gt;
532 533 534

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

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

537 538 539 540 541 542
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
543
  | 类型 | 说明 |
544
  | -------- | -------- |
A
anyueling 已提交
545
  | Promise&lt;boolean&gt; | 移除任务是否成功。true:成功,false:不成功。 |
546 547 548 549

**示例:**

  ```js
A
anyueling 已提交
550
  uploadTask.remove().then((result) => {
551 552 553 554 555 556 557 558 559 560 561
      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 已提交
562
### remove<sup>(deprecated)</sup>
563

A
anyueling 已提交
564
remove(callback: AsyncCallback&lt;boolean&gt;): void
565 566 567

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

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

570 571 572 573 574 575
**需要权限**:ohos.permission.INTERNET

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

**参数:**

A
anyueling 已提交
576
  | 参数名 | 类型 | 必填 | 说明 |
577
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
578
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 移除任务的回调函数。 |
579 580 581 582

**示例:**

  ```js
A
anyueling 已提交
583
  uploadTask.remove((err, result) => {
584 585 586 587 588 589 590 591 592 593 594 595
      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 已提交
596
## UploadConfig
597
上传任务的配置信息。
Z
zengyawen 已提交
598

A
anyueling 已提交
599 600
**需要权限**:ohos.permission.INTERNET

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

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

A
修改  
anyueling 已提交
611
## TaskState<sup>9+</sup>
612
上传任务信息,[on('complete' | 'fail')<sup>9+</sup>](#oncomplete--fail9)[off('complete' | 'fail')<sup>9+</sup>](#offcomplete--fail9)接口的回调参数。
A
anyueling 已提交
613 614 615 616 617 618 619 620 621 622

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

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

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

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

A
anyueling 已提交
627 628
**需要权限**:ohos.permission.INTERNET

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

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


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

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

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

Z
zengyawen 已提交
646
| 名称 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
647
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
648 649
| name | string | 是 | 表示表单元素的名称。 |
| value | string | 是 | 表示表单元素的值。 |
Z
zengyawen 已提交
650

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

A
anyueling 已提交
653
downloadFile(context: BaseContext, config: DownloadConfig): Promise&lt;DownloadTask&gt;
Z
zengyawen 已提交
654

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

Z
zengyawen 已提交
657 658 659 660 661

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

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

662 663 664
**参数:**

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

669 670 671
**返回值:**

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

A
anyueling 已提交
675 676 677 678 679 680 681 682 683
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

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

684
**示例:**
A
anyueling 已提交
685

686
  ```js
687
  let downloadTask;
A
anyueling 已提交
688 689 690 691 692 693 694 695 696
  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 已提交
697 698 699
  ```


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

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

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

Z
zengyawen 已提交
706 707 708 709 710

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

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

711 712
**参数:**

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

A
anyueling 已提交
719 720 721 722 723 724 725 726 727
**错误码:**
以下错误码的详细介绍请参见[上传下载错误码](../errorcodes/errorcode-request.md)

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

728
**示例:**
A
anyueling 已提交
729

730
  ```js
731
  let downloadTask;
A
anyueling 已提交
732 733 734 735 736 737 738 739 740 741 742 743
  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 已提交
744 745
  ```

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

A
anyueling 已提交
748
download(config: DownloadConfig): Promise&lt;DownloadTask&gt;
A
anyueling 已提交
749 750 751

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

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

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

A
anyueling 已提交
756 757 758 759 760 761 762 763 764 765 766 767 768 769 770
**需要权限**:ohos.permission.INTERNET

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

**参数:**

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

**返回值:**

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

A
anyueling 已提交
772
**示例:**
A
anyueling 已提交
773

A
anyueling 已提交
774 775
  ```js
  let downloadTask;
A
anyueling 已提交
776
  request.download({ url: 'https://xxxx/xxxx.hap' }).then((data) => {
A
anyueling 已提交
777 778 779 780 781 782 783
      downloadTask = data;
  }).catch((err) => {
      console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
  })
  ```


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

A
anyueling 已提交
786
download(config: DownloadConfig, callback: AsyncCallback&lt;DownloadTask&gt;): void
A
anyueling 已提交
787 788 789

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

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

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

A
anyueling 已提交
794 795 796 797 798 799
**需要权限**:ohos.permission.INTERNET

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

**参数:**

800
  | 参数名 | 类型 | 必填 | 说明 |
A
anyueling 已提交
801 802
  | -------- | -------- | -------- | -------- |
  | config | [DownloadConfig](#downloadconfig) | 是 | 下载的配置信息。 |
803
  | callback | AsyncCallback&lt;[DownloadTask](#downloadtask)&gt; | 是 | 下载接口的回调函数。 |
A
anyueling 已提交
804 805

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

A
anyueling 已提交
807 808
  ```js
  let downloadTask;
A
anyueling 已提交
809
  request.download({ url: 'https://xxxx/xxxxx.hap', 
A
anyueling 已提交
810 811 812 813 814 815 816 817
  filePath: 'xxx/xxxxx.hap'}, (err, data) => {
      if (err) {
          console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
          return;
      }
      downloadTask = data;
  });
  ```
818

Z
zengyawen 已提交
819 820
## DownloadTask

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


### on('progress')

Z
zengyawen 已提交
826
on(type: 'progress', callback:(receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
827

828
订阅下载任务进度监听,同步方法,使用callback形式返回结果。
Z
zengyawen 已提交
829 830 831 832 833

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

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

834 835 836
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
837
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
838
  | type | string | 是 | 订阅的事件类型,取值为'progress'(下载的进度信息)。 |
839
  | callback | function | 是 | 下载任务进度的回调函数。 |
Z
zengyawen 已提交
840 841 842

  回调函数的参数:

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

848
**示例:**
A
anyueling 已提交
849

850
  ```js
C
cy7717 已提交
851
  let progresCallback = (receivedSize, totalSize) => {
Z
zengyawen 已提交
852
      console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
853
  };
C
cy7717 已提交
854
  downloadTask.on('progress', progresCallback);
Z
zengyawen 已提交
855 856 857 858 859
  ```


### off('progress')

Z
zengyawen 已提交
860
off(type: 'progress', callback?: (receivedSize: number, totalSize: number) =&gt; void): void
Z
zengyawen 已提交
861

862
删除下载任务进度监听,同步方法。
Z
zengyawen 已提交
863 864 865 866 867

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

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

868 869
**参数:**

870
  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
871
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
872
  | type | string | 是 | 取消订阅的事件类型,取值为'progress'(下载的进度信息)。 |
873
  | callback | function | 否 | 需要删除的下载任务进度的回调。 <br/>receivedSize:当前下载任务的进度;<br/>totalSize:下载文件的总大小。 |
Z
zengyawen 已提交
874

875
**示例:**
A
anyueling 已提交
876

877
  ```js
C
cy7717 已提交
878 879 880 881
  let progresCallback = (receivedSize, totalSize) => {
      console.info('Download delete progress notification.' + 'receivedSize:' + receivedSize + 'totalSize:' + totalSize);
  };
  downloadTask.off('progress', progresCallback);
Z
zengyawen 已提交
882 883 884
  ```


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

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

889
订阅下载任务相关的监听,异步方法,使用callback形式返回。
Z
zengyawen 已提交
890 891 892 893 894

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

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

895 896 897
**参数:**

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

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

904
  ```js
905
  let completeCallback = () => {
906
      console.info('Download task completed.');
907 908
  };
  downloadTask.on('complete', completeCallback);
C
mod  
cy7717 已提交
909 910 911 912 913 914 915 916 917 918

  let pauseCallback = () => {
      console.info('Download task pause.');
  };
  downloadTask.on('pause', pauseCallback);

  let removeCallback = () => {
      console.info('Download task remove.');
  };
  downloadTask.on('remove', removeCallback);
Z
zengyawen 已提交
919 920 921
  ```


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

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

926
删除下载任务相关的监听,同步方法。
Z
zengyawen 已提交
927 928 929 930 931

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

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

932 933 934
**参数:**

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

939
**示例:**
A
anyueling 已提交
940

941
  ```js
C
cy7717 已提交
942 943 944
  let completeCallback = () => {
      console.info('Download delete complete notification.');
  };
945
  downloadTask.off('complete', completeCallback);
C
mod  
cy7717 已提交
946 947 948 949 950 951 952 953 954 955

  let pauseCallback = () => {
      console.info('Download delete pause notification.');
  };
  downloadTask.off('pause', pauseCallback);

  let removeCallback = () => {
      console.info('Download delete remove notification.');
  };
  downloadTask.off('remove', removeCallback);
Z
zengyawen 已提交
956 957 958 959 960
  ```


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

Z
zengyawen 已提交
961
on(type: 'fail', callback: (err: number) =&gt; void): void
Z
zengyawen 已提交
962

963
订阅下载任务失败监听,同步方法,使用callback形式返回结果。
Z
zengyawen 已提交
964 965 966 967 968

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

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

969 970 971
**参数:**

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

  回调函数的参数:

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

982
**示例:**
A
anyueling 已提交
983

984 985
  ```js
  let failCallback = (err) => {
986
      console.info('Download task failed. Cause:' + err);
987 988
  };
  downloadTask.on('fail', failCallback);
Z
zengyawen 已提交
989 990 991 992 993
  ```


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

Z
zengyawen 已提交
994
off(type: 'fail', callback?: (err: number) =&gt; void): void
Z
zengyawen 已提交
995

996
删除下载任务失败监听,同步方法。
Z
zengyawen 已提交
997 998 999 1000 1001

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

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

1002 1003 1004
**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1005
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1006
  | type | string | 是 | 取消订阅的事件类型,取值为'fail'(下载失败)。 |
1007
  | callback | function | 否 | 需要删除的下载失败的回调函数。<br/>err:下载失败的错误码。 |
Z
zengyawen 已提交
1008

1009
**示例:**
A
anyueling 已提交
1010

1011
  ```js
C
cy7717 已提交
1012
  let failCallback = (err) => {
C
cy7717 已提交
1013
      console.info('Download delete fail notification.' + 'err: ${err.message}');
C
cy7717 已提交
1014
  };
1015
  downloadTask.off('fail', failCallback);
Z
zengyawen 已提交
1016 1017
  ```

A
anyueling 已提交
1018
### delete<sup>9+</sup>
Z
zengyawen 已提交
1019

A
anyueling 已提交
1020
delete(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1021 1022 1023 1024 1025 1026 1027

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

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

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

1028 1029 1030
**返回值:**

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

1034
**示例:**
A
anyueling 已提交
1035

1036
  ```js
A
anyueling 已提交
1037
  downloadTask.delete().then((result) => {
Z
zengyawen 已提交
1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048
      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 已提交
1049
### delete<sup>9+</sup>
Z
zengyawen 已提交
1050

A
anyueling 已提交
1051
delete(callback: AsyncCallback&lt;boolean&gt;): void
Z
zengyawen 已提交
1052 1053 1054 1055 1056 1057 1058

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

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

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

1059 1060
**参数:**

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

1065
**示例:**
A
anyueling 已提交
1066

1067
  ```js
A
anyueling 已提交
1068
  downloadTask.delete((err, result)=>{
Z
zengyawen 已提交
1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081
      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 已提交
1082
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1083

A
anyueling 已提交
1084
getTaskInfo(): Promise&lt;DownloadInfo&gt;
Z
zengyawen 已提交
1085 1086 1087 1088 1089 1090 1091

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

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

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

1092 1093 1094
**返回值:**

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

1098
**示例:**
A
anyueling 已提交
1099

1100
  ```js
A
anyueling 已提交
1101
  downloadTask.getTaskInfo().then((downloadInfo) => {    
Z
zengyawen 已提交
1102
      console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
Z
zengyawen 已提交
1103 1104 1105 1106 1107 1108
  }) .catch((err) => {
      console.error('Failed to query the download task. Cause:' + err)
  });
  ```


A
anyueling 已提交
1109
### getTaskInfo<sup>9+</sup>
Z
zengyawen 已提交
1110

A
anyueling 已提交
1111
getTaskInfo(callback: AsyncCallback&lt;DownloadInfo&gt;): void
Z
zengyawen 已提交
1112 1113 1114 1115 1116 1117 1118

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

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

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

1119 1120
**参数:**

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

1125
**示例:**
A
anyueling 已提交
1126

1127
  ```js
A
anyueling 已提交
1128
  downloadTask.getTaskInfo((err, downloadInfo)=>{
Z
zengyawen 已提交
1129 1130 1131 1132 1133 1134 1135 1136 1137
      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 已提交
1138
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1139

A
anyueling 已提交
1140
getTaskMimeType(): Promise&lt;string&gt;
Z
zengyawen 已提交
1141 1142 1143 1144 1145 1146 1147

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

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

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

1148 1149 1150
**返回值:**

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

1154
**示例:**
A
anyueling 已提交
1155

1156
  ```js
A
anyueling 已提交
1157
  downloadTask.getTaskMimeType().then((data) => {    
Z
zengyawen 已提交
1158 1159 1160 1161 1162 1163 1164
      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 已提交
1165
### getTaskMimeType<sup>9+</sup>
Z
zengyawen 已提交
1166

A
anyueling 已提交
1167
getTaskMimeType(callback: AsyncCallback&lt;string&gt;): void;
Z
zengyawen 已提交
1168 1169 1170 1171 1172 1173 1174

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

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

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

1175 1176
**参数:**

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

1181
**示例:**
A
anyueling 已提交
1182

1183
  ```js
A
anyueling 已提交
1184
  downloadTask.getTaskMimeType((err, data)=>{
Z
zengyawen 已提交
1185 1186 1187 1188 1189 1190 1191 1192 1193
      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 已提交
1194
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1195

A
anyueling 已提交
1196
suspend(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1197 1198 1199 1200 1201 1202 1203

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

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

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

1204 1205 1206
**返回值:**

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

1210
**示例:**
A
anyueling 已提交
1211

1212
  ```js
A
anyueling 已提交
1213
  downloadTask.suspend().then((result) => {    
Z
zengyawen 已提交
1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224
      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 已提交
1225
### suspend<sup>9+</sup>
Z
zengyawen 已提交
1226

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

Z
zengyawen 已提交
1229 1230 1231 1232 1233 1234
暂停下载任务,异步方法,使用callback形式返回结果。

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

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

1235 1236
**参数:**

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

1241
**示例:**
A
anyueling 已提交
1242

1243
  ```js
A
anyueling 已提交
1244
  downloadTask.suspend((err, result)=>{
Z
zengyawen 已提交
1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257
      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 已提交
1258
### restore<sup>9+</sup>
Z
zengyawen 已提交
1259

A
anyueling 已提交
1260
restore(): Promise&lt;boolean&gt;
Z
zengyawen 已提交
1261 1262 1263 1264 1265 1266 1267

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

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

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

1268
**返回值:**
1269 1270

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

1274
**示例:**
A
anyueling 已提交
1275

1276
  ```js
A
anyueling 已提交
1277
  downloadTask.restore().then((result) => {
Z
zengyawen 已提交
1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289
      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 已提交
1290
### restore<sup>9+</sup>
Z
zengyawen 已提交
1291

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

Z
zengyawen 已提交
1294 1295 1296 1297 1298 1299
重新启动暂停的下载任务,异步方法,使用callback形式返回结果。

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

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

1300 1301
**参数:**

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

1306
**示例:**
A
anyueling 已提交
1307

1308
  ```js
A
anyueling 已提交
1309
  downloadTask.restore((err, result)=>{
Z
zengyawen 已提交
1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322
      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.');
      }
  });
  ```


1323

A
anyueling 已提交
1324 1325 1326
### remove<sup>(deprecated)</sup>

remove(): Promise&lt;boolean&gt;
1327 1328 1329

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

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

1332 1333 1334 1335 1336 1337
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
1338
  | 类型 | 说明 |
1339
  | -------- | -------- |
A
anyueling 已提交
1340
  | Promise&lt;boolean&gt; | 移除任务是否成功。 |
1341 1342 1343 1344

**示例:**

  ```js
A
anyueling 已提交
1345
  downloadTask.remove().then((result) => {
1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356
      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 已提交
1357
### remove<sup>(deprecated)</sup>
1358

A
anyueling 已提交
1359
remove(callback: AsyncCallback&lt;boolean&gt;): void
1360 1361 1362

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

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

1365 1366 1367 1368 1369 1370
**需要权限**:ohos.permission.INTERNET

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

**参数:**

A
anyueling 已提交
1371
  | 参数名 | 类型 | 必填 | 说明 |
1372
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1373
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 移除任务是否成功。 |
1374 1375 1376 1377

**示例:**

  ```js
A
anyueling 已提交
1378
  downloadTask.remove((err, result)=>{
1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391
      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 已提交
1392
### query<sup>(deprecated)</sup>
1393

A
anyueling 已提交
1394
query(): Promise&lt;DownloadInfo&gt;
1395 1396 1397

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

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

1400 1401 1402 1403
**需要权限**:ohos.permission.INTERNET

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

1404 1405
**返回值:**

A
anyueling 已提交
1406 1407 1408
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;[DownloadInfo](#downloadinfo7)&gt; | 查询下载任务信息。 |
1409 1410 1411 1412

**示例:**

  ```js
A
anyueling 已提交
1413
  downloadTask.query().then((downloadInfo) => {    
1414 1415 1416 1417 1418 1419 1420
      console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
  }) .catch((err) => {
      console.error('Failed to query the download task. Cause:' + err)
  });
  ```


A
anyueling 已提交
1421
### query<sup>(deprecated)</sup>
1422

A
anyueling 已提交
1423
query(callback: AsyncCallback&lt;DownloadInfo&gt;): void
1424 1425 1426

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

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

1429 1430 1431 1432 1433 1434
**需要权限**:ohos.permission.INTERNET

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

**参数:**

A
anyueling 已提交
1435
  | 参数名 | 类型 | 必填 | 说明 |
1436
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1437
  | callback | AsyncCallback&lt;[DownloadInfo](#downloadinfo7)&gt; | 是 | 查询下载任务的回调函数。 |
1438 1439 1440 1441

**示例:**

  ```js
A
anyueling 已提交
1442
  downloadTask.query((err, downloadInfo)=>{
1443 1444 1445 1446 1447 1448 1449 1450 1451
      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 已提交
1452
### queryMimeType<sup>(deprecated)</sup>
1453

A
anyueling 已提交
1454
queryMimeType(): Promise&lt;string&gt;
1455 1456 1457

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

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

1460 1461 1462 1463 1464 1465
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
1466
  | 类型 | 说明 |
1467
  | -------- | -------- |
A
anyueling 已提交
1468
  | Promise&lt;string&gt; | 查询下载任务的MimeType。 |
1469 1470 1471 1472

**示例:**

  ```js
A
anyueling 已提交
1473
  downloadTask.queryMimeType().then((data) => {    
1474 1475 1476 1477 1478 1479 1480
      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 已提交
1481
### queryMimeType<sup>(deprecated)</sup>
1482

A
anyueling 已提交
1483
queryMimeType(callback: AsyncCallback&lt;string&gt;): void;
1484 1485 1486

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

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

1489 1490 1491 1492 1493 1494
**需要权限**:ohos.permission.INTERNET

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

**参数:**

A
anyueling 已提交
1495
  | 参数名 | 类型 | 必填 | 说明 |
1496
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1497
  | callback | AsyncCallback&lt;string&gt; | 是 | 查询下载任务的MimeType的回调函数。 |
1498 1499 1500 1501

**示例:**

  ```js
A
anyueling 已提交
1502
  downloadTask.queryMimeType((err, data)=>{
1503 1504 1505 1506 1507 1508 1509 1510 1511
      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 已提交
1512
### pause<sup>(deprecated)</sup>
1513

A
anyueling 已提交
1514
pause(): Promise&lt;void&gt;
1515 1516 1517

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

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

1520 1521 1522 1523 1524 1525
**需要权限**:ohos.permission.INTERNET

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

**返回值:**

A
anyueling 已提交
1526
  | 类型 | 说明 |
1527
  | -------- | -------- |
A
anyueling 已提交
1528
  | Promise&lt;void&gt; | 暂停下载任务是否成功。 |
1529 1530 1531 1532

**示例:**

  ```js
A
anyueling 已提交
1533
  downloadTask.pause().then((result) => {    
1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544
      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 已提交
1545
### pause<sup>(deprecated)</sup>
1546

A
anyueling 已提交
1547 1548 1549
pause(callback: AsyncCallback&lt;void&gt;): void

>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[suspend<sup>9+</sup>](#suspend9-1)替代。
1550 1551 1552 1553 1554 1555 1556 1557 1558

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

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

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

**参数:**

A
anyueling 已提交
1559
  | 参数名 | 类型 | 必填 | 说明 |
1560
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1561
  | callback | AsyncCallback&lt;void&gt; | 是 | 暂停下载任务的回调函数。 |
1562 1563 1564 1565

**示例:**

  ```js
A
anyueling 已提交
1566
  downloadTask.pause((err, result)=>{
1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579
      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 已提交
1580
### resume<sup>(deprecated)</sup>
1581

A
anyueling 已提交
1582
resume(): Promise&lt;void&gt;
1583 1584 1585

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

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

1588 1589 1590 1591
**需要权限**:ohos.permission.INTERNET

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

1592
**返回值:**
1593

A
anyueling 已提交
1594
  | 类型 | 说明 |
1595
  | -------- | -------- |
A
anyueling 已提交
1596
  | Promise&lt;void&gt; | 重新启动暂停的下载任务是否成功。 |
1597 1598 1599 1600

**示例:**

  ```js
A
anyueling 已提交
1601
  downloadTask.resume().then((result) => {
1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613
      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 已提交
1614
### resume<sup>(deprecated)</sup>
1615

A
anyueling 已提交
1616 1617 1618
resume(callback: AsyncCallback&lt;void&gt;): void

>  **说明:** 从API Version 7开始支持,从API Version 9开始不再维护,建议使用[restore<sup>9+</sup>](#restore9-1)替代。
1619 1620 1621 1622 1623 1624 1625 1626 1627

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

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

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

**参数:**

A
anyueling 已提交
1628
  | 参数名 | 类型 | 必填 | 说明 |
1629
  | -------- | -------- | -------- | -------- |
A
anyueling 已提交
1630
  | callback | AsyncCallback&lt;void&gt; | 是 | 重新启动暂停的下载任务的回调函数。 |
1631 1632 1633 1634

**示例:**

  ```js
A
anyueling 已提交
1635
  downloadTask.resume((err, result)=>{
1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648
      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 已提交
1649
## DownloadConfig
1650
下载任务的配置信息。
Z
zengyawen 已提交
1651

A
anyueling 已提交
1652 1653
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1654 1655 1656 1657 1658
**系统能力**: SystemCapability.MiscServices.Download

| 名称 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| url | string | 是 | 资源地址。 |
1659
| 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 |
1660
| enableMetered | boolean | 否 | 设置是否允许在按流量计费的连接下下载(默认使用false)。Wi-Fi为非计费网络,数据流量为计费网络。<br/>-&nbsp;true:是<br/>-&nbsp;false:否 |
1661
| enableRoaming | boolean | 否 | 设置是否允许在漫游网络中下载(默认使用false)。 <br/>-&nbsp;true:是<br/>-&nbsp;false:否|
Z
zengyawen 已提交
1662
| description | string | 否 | 设置下载会话的描述。 |
1663
| filePath<sup>7+</sup> | string | 否 | 设置下载路径。<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\`,并将文件存储在此路径下。|
1664
| networkType | number | 否 | 设置允许下载的网络类型(默认使用NETWORK_MOBILE&NETWORK_WIFI)。<br/>-&nbsp;NETWORK_MOBILE:0x00000001<br/>-&nbsp;NETWORK_WIFI:0x00010000|
A
anyueling 已提交
1665
| title | string | 否 | 设置下载任务名称。 |
1666
| background<sup>9+</sup> | boolean | 否 | 后台任务通知开关,开启后可在通知中显示下载状态(默认使用false)。 |
Z
zengyawen 已提交
1667 1668


Z
zengyawen 已提交
1669
## DownloadInfo<sup>7+</sup>
1670
下载任务信息,[getTaskInfo<sup>9+</sup>](#gettaskinfo9)接口的回调参数。
Z
zengyawen 已提交
1671

A
anyueling 已提交
1672 1673
**需要权限**:ohos.permission.INTERNET

Z
zengyawen 已提交
1674 1675
**系统能力**: SystemCapability.MiscServices.Download

1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688
| 名称 | 类型 | 说明 |
| -------- | ------ |---------------- |
| downloadId | number | 下载任务ID。 |
| failedReason | number | 下载失败原因,可以是任何[下载任务的错误码](#下载任务的错误码)常量。 |
| fileName | string | 下载的文件名。 |
| filePath | string | 存储文件的URI。 |
| pausedReason | number | 会话暂停的原因,可以是任何[下载任务暂停原因](#下载任务暂停原因)常量。 |
| status | number | 下载状态码,可以是任何[下载任务状态码](#下载任务状态码)常量。 |
| targetURI | string | 下载文件的URI。 |
| downloadTitle | string | 下载任务名称。 |
| downloadTotalBytes | number | 下载的文件的总大小(int&nbsp;bytes)。 |
| description | string | 待下载任务的描述信息。 |
| downloadedBytes | number | 实时下载大小(int&nbsp;&nbsp;bytes)。 |
1689
<!--no_check-->