HarmonyOS编程开发实战:使用Request部件下载文件到本地示例

 1. Request下载文件简介

在前述文章鸿蒙HarmonyOS开发编程:使用HttpRequest下载文件到本地示例中,使用基础的HttpRequest模块演示了如何下载文件到本地,整个下载过程看起来好像不太复杂,但是,如果考虑到可靠性、网络问题以及文件类型和大小的差异,开发难度还是相当大的,幸运的是,鸿蒙提供了专门用来进行上传下载的API,把这些复杂性都封装了起来,这就是本示例要使用的request部件。

2. request的常用方法

鸿蒙封装的request对象位于模块request中,使用如下的方式导入:

import request from '@ohos.request';

request模块包括了众多的对象和操作方法,就本文而言,重点需要掌握的是downloadFile方法:

downloadFile(context: BaseContext, config: DownloadConfig): Promise<DownloadTask>

该方法执行异步下载,使用promise形式返回结果,结果为DownloadTask类型。可以通过DownloadTask类型的on('complete'|'pause'|'remove')订阅任务下载时的状态信息,包括任务完成、暂停或移除。通过on('fail')可获取任务下载时的错误信息。

3. request下载示例

本文要下载的服务端网站和鸿蒙HarmonyOS开发编程:使用HttpRequest下载文件到本地示例中的网站一样,也是需要登录后才可以下载,本示例运行后的界面如图所示:

0900086000300134184.20201216095126.86523331460016843504112994983392.png

应用启动后首先配置用户名密码以及登录地址,然后单击“登录”按钮进行登录,成功登录后就可以单击“下载”按钮进行下载了,成功下载后会显示保存位置和下载的文件内容。

下面详细介绍创建该应用的步骤。

步骤1:创建Empty Ability项目。

步骤2:在module.json5配置文件加上对权限的声明:

"requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]

这里添加了访问互联网的权限。

步骤3:在Index.ets文件里添加如下的代码:

import http from '@ohos.net.http';
import util from '@ohos.util';
import fs from '@ohos.file.fs';
import request from '@ohos.request';
import picker from '@ohos.file.picker';

@Entry
@Component
struct Index {
  //连接、通讯历史记录
  @State msgHistory: string = ''
  //首页地址
  @State downloadUrl: string = "http://192.168.100.101:8081/download?filename=demo.txt"
  //登录地址
  @State loginUrl: string = "http://192.168.100.101:8081/auth"
  //用户名
  @State loginName: string = "zhanglei"
  //密码
  @State passwd: string = "cangjie"

  //下载到本地的路径
  @State localFilePath: string = ""

  scroller: Scroller = new Scroller()
  sessionId: string = ""

  build() {
    Row() {
      Column() {
        Text("Request下载示例")
          .fontSize(14)
          .fontWeight(FontWeight.Bold)
          .width('100%')
          .textAlign(TextAlign.Center)
          .padding(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值