鸿蒙开发网络管理:【@ohos.request (上传下载)】

上传下载

icon-note.gif 说明:  本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import request from '@ohos.request';

限制与约束

默认支持https,如果要支持http,需要在config.json里增加network标签,属性标识 “cleartextTraffic”: true。即:

  "deviceConfig": {
    "default": {
      "network": {
        "cleartextTraffic": true
      }
      ...
    }
  }

常量

需要权限:ohos.permission.INTERNET

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

名称 参数类型 可读 可写 说明
NETWORK_MOBILE number 使用蜂窝网络时允许下载的位标志。
NETWORK_WIFI number 使用WLAN时允许下载的位标志。
ERROR_CANNOT_RESUME7+ number 某些临时错误导致的恢复下载失败。
ERROR_DEVICE_NOT_FOUND7+ number 找不到SD卡等存储设备。
ERROR_FILE_ALREADY_EXISTS7+ number 要下载的文件已存在,下载会话不能覆盖现有文件。
ERROR_FILE_ERROR7+ number 文件操作失败。
ERROR_HTTP_DATA_ERROR7+ number HTTP传输失败。
ERROR_INSUFFICIENT_SPACE7+ number 存储空间不足。
ERROR_TOO_MANY_REDIRECTS7+ number 网络重定向过多导致的错误。
ERROR_UNHANDLED_HTTP_CODE7+ number 无法识别的HTTP代码。
ERROR_UNKNOWN7+ number 未知错误。
PAUSED_QUEUED_FOR_WIFI7+ number 下载被暂停并等待WLAN连接,因为文件大小超过了使用蜂窝网络的会话允许的最大值。
PAUSED_UNKNOWN7+ number 未知原因导致暂停下载。
PAUSED_WAITING_FOR_NETWORK7+ number 由于网络问题(例如网络断开)而暂停下载。
PAUSED_WAITING_TO_RETRY7+ number 发生网络错误,将重试下载会话。
SESSION_FAILED7+ number 下载会话已失败,将不会重试。
SESSION_PAUSED7+ number 下载会话已暂停。
SESSION_PENDING7+ number 正在调度下载会话。
SESSION_RUNNING7+ number 下载会话正在进行中。
SESSION_SUCCESSFUL7+ number 下载会话已完成。

request.upload

upload(config: UploadConfig): Promise

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

需要权限:ohos.permission.INTERNET

系统能力: SystemCapability.MiscServices.Upload

参数:

参数名 类型 必填 说明
config [UploadConfig] 上传的配置信息。

返回值:

类型 说明
Promise<[UploadTask]> 返回上传任务。

示例:

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

request.upload

upload(config: UploadConfig, callback: AsyncCallback): void

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

需要权限:ohos.permission.INTERNET

系统能力: SystemCapability.MiscServices.Upload

参数:

参数名 参数类型 必填 说明
config [UploadConfig] 上传的配置信息。
callback AsyncCallback<[UploadTask]> 回调函数,异步返回UploadTask对象。

示例:

let file1 = { filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" };
let data = { name: "name123", value: "123" };
let header = { key1: "value1", key2: "value2" };
let uploadTask;
request.upload({ url: 'https://patch', header: header, method: "POST", files: [file1], data: [data] }, (err, data) => {
    if (err) {
        console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
        return;
    }
    uploadTask = data;
});

UploadTask

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

on(‘progress’)

on(type: ‘progress’, callback:(uploadedSize: number, totalSize: number) => void): void

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

需要权限:ohos.permission.INTERNET

系统能力: SystemCapability.MiscServices.Upload

参数:

参数名 类型 必填 说明
type string 订阅的事件类型,取值为’progress’(上传的进度信息)。
callback function 上传进度的回调函数。

回调函数的参数

参数名 类型 必填 说明
uploadedSize number 当前已上传文件大小,单位为KB。
totalSize number
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值