首页 > 其他分享 >【HarmonyOS】@ohos.request 上传下载的那些事儿

【HarmonyOS】@ohos.request 上传下载的那些事儿

时间:2023-08-10 10:07:28浏览次数:48  
标签:上传下载 request upload 接口 HarmonyOS 上传 下载

【关键字】

@ohos.request、上传下载


【写在前面】

在进行HarmonyOS应用开发时,可能需要进行上传或下载文件功能开发,本文章主要进行上传下载相关功能介绍和一些注意事项及FAQ。


【上传开发步骤】

步骤1:上传下载接口需要申请ohos.permission.INTERNET权限,如下:

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

【HarmonyOS】@ohos.request 上传下载的那些事儿_上传

步骤2:API9以下版本调用request.upload接口,API9可以调用request.uploadFile接口,参数详见官方文档说明,代码如下:

let file = {
            filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg"
        };
        let uploadTask;
        request.upload({
            url: 'http://xxx/upload/',
            header: {},
            method: "POST",
            files: [file],
            data: [
                {
                    name: "test", value: "value"
                }
            ]
        }).then((data) => {
            console.error('test data: ' + JSON.stringify(data));
            uploadTask = data;
            // 可通过progress判断进度是否完成,uploadedSize等于totalSize表示上传成功
            // API9可通过complete监听上传任务是否完成
            uploadTask.on('progress', function callback(uploadedSize, totalSize) {
                console.info("upload totalSize:" + totalSize + "  uploadedSize:" + uploadedSize);
            });
        }).catch((err) => {
            console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
        })

【HarmonyOS】@ohos.request 上传下载的那些事儿_上传下载_02

步骤3:上传任务是否完成可根据API版本,参考文档使用不同接口进行监听,走到监听回调即表示文件上传成功了。


【下载开发步骤】

下载功能开发同上传类似,同样需要申请ohos.permission.INTERNET权限,再根据不同API版本,参考文档调用不同接口即可;官方文档每个接口均有示例说明,此处不再赘述。


【参考文档】

上传下载:https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-request-0000001428061972-V3


【FAQ】

问题1:使用download下载功能,文件较大时,将应用切换到后台,发现下载任务停止了,如何才能让应用运行在后台时,保持下载功能?

----可将downloadTask变量定义为全局变量,若非全局变量,在应用运行后台时,会导致task任务终止,即下载任务停止。同理,上传功能也一样处理。

问题2:上传或下载过程中,on('progress') 任务进度监听会走几次?

----on('progress') 仅用于显示上传下载进度,若网速情况良好或者文件大小不是很大的情况下,progress可能仅回调一次,回调次数与网速与下载文件大小均有关系

问题3:若http接口有返回数据,上传下载接口回调是否可以获取返回的数据?

----上传下载接口仅支持进行文件上传和下载功能,接口回调仅用于监听上传下载是否完成,无法在回调中接收数据。


标签:上传下载,request,upload,接口,HarmonyOS,上传,下载
From: https://blog.51cto.com/u_15687416/7031012

相关文章

  • 【HarmonyOS】@ohos.request 上传下载的那些事儿
    【关键字】@ohos.request、上传下载【写在前面】在进行HarmonyOS应用开发时,可能需要进行上传或下载文件功能开发,本文章主要进行上传下载相关功能介绍和一些注意事项及FAQ。【上传开发步骤】步骤1:上传下载接口需要申请ohos.permission.INTERNET权限,如下:"reqPermissions":[{......
  • 【HarmonyOS】Java如何引用外部jar包
    【关键字】Java、引用jar包【写在前面】使用API6和API7开发HarmonyOS应用时,因为应用中只能引用SDK中开放的功能接口,但是部分jdk自带的接口功能在SDK中并未封装,要想在工程中使用jdk开放的接口功能,需要将jdk中的jar包通过本地引用方式引入再使用,本篇文章介绍如何在支持Java的HarmonyO......
  • HarmonyOS系统级推送服务,打造消息通知新体验
    8月4日,第五届华为开发者大会2023(HDC.Together)再次启航。在本次大会上,华为为广大用户带来了HarmonyOS4.0全新升级的体验,同时,针对HarmonyOS应用的开发,此次也全面升级了HarmonyOSSDK开放能力。账号服务、支付、广告、推送服务(PushKit)等通用能力全局化、系统化后,为开发者带来更......
  • 常用注解之@PathVariable与@RequestParam详解
    @PathVariable和@RequestParam首先说一下Request了解一下请求参数是什么在访问各种各样网站时,经常会发现网站的URL的最后一部分形如:?xxxx=yyyy&zzzz=wwww。这就是HTTP协议中的Request参数,它有什么用呢?先来看一个例子:在知乎中搜索web浏览器跳转到新页面后,URL变为https://www.zhih......
  • @RequestMapping(value = "/testxml", produces = {"application/xml; charset=UTF-8"
    这行代码是使用SpringFramework的注解来配置一个用于处理HTTP请求的方法。具体来说,这是一个用于处理GET请求的方法,路径为"/testxml"。让我为你解释其中的含义:@RequestMapping:这是SpringFramework提供的注解,用于将一个方法映射到特定的请求路径。在这个例子中,它将......
  • Request.url请求路径的一些属性
    https://blog.csdn.net/u012726702/article/details/51737795Request.url请求路径的一些属性1,Request.UrlReferrer.AbsolutePath=获取URL的绝对路径例:"/Manager/Module/OfficialManage/Issuedadocument/Issuedadocument_WorkNew.aspx"2,Request.UrlReferrer.AbsoluteUri=获取绝......
  • 【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)
    【关键字】视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解码步骤使用的是普通......
  • axios 请求拦截(request)与响应拦截(response)
    1.请求拦截(request)请求拦截就是在发ajax之前做些什么!例如:可以在请求拦截里面加个token请求头,做些判断等等!语法:axios.interceptors.request.use((config)=>{},(error)=>{})1.1.参数1:(config)=>{}请求正确走的函数1.2.参数2:(error)=>{}请求错误走的函数1.3.代码案......
  • 十城百校联动!HDC.Together 2023 HarmonyOS学生公开课与千余名校园学子见证鸿蒙力量
     8月6日,HDC.Together2023 HarmonyOS学生公开课在东莞松山湖举办。有来自清华大学、北京大学、哈尔滨工业大学等全国百余所高校,千余名学生开发者齐聚会场,与华为高级技术专家、生态伙伴资深专家一起畅谈HarmonyOS未来,共话HarmonyOS在生活中的N种可能。此外,本次活动首次走进华......
  • Java HDFS上传下载文件测试
    JavaHDFS上传下载文件测试HDFS引用mavenpom.xml加入引用<!--3.1.2--><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>3.0.0</version>......