当前位置: 首页 > news >正文

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

【关键字】

@ohos.request、上传下载​

【写在前面】

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

【上传开发步骤】

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

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

步骤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));})

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

【下载开发步骤】

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

【参考文档】

上传下载:文档中心

【FAQ】

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

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

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

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

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

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

相关文章:

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

【关键字】 ohos.request、上传下载​ 【写在前面】 在进行HarmonyOS应用开发时,可能需要进行上传或下载文件功能开发,本文章主要进行上传下载相关功能介绍和一些注意事项及FAQ。 【上传开发步骤】 步骤1:上传下载接口需要申请ohos.permis…...

github版面混乱加载不出的解决办法

最近出现打开github 界面加载不成功,网页访问乱码,打开chrome的检查发现 github的github.githubassets.com 拒绝访问, 解法: 1.先打开hosts文件所在的目录C:\Windows\System32\drivers\etc 2.右键点击hosts文件-选择用记事本或者…...

dotNet 之数据库sqlite

Sqlite3是个特别好的本地数据库,体积小,无需安装,是写小控制台程序最佳数据库。NET Core是同样也是.NET 未来的方向。 **硬件支持型号 点击 查看 硬件支持 详情** DTU701 产品详情 DTU702 产品详情 DTU801 产品详情 DTU802 产品详情 D…...

走近ChatGPT与类似产品:原理解析与比较

目录 1. 引言1.1 技术的进步与自然语言处理1.2 ChatGPT的崭新概念 2. ChatGPT: 一览众山小2.1 GPT-3.5架构简介2.2 ChatGPT的学习与训练2.3 文本生成的工作原理 3. 市场上类似产品调研3.1 对话式人工智能产品分类3.2 文心一言3.3 讯飞星火 4. 应用前景与局限性展望4.1 ChatGPT的…...

HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验

华为开发者大会2023(HDC.Together)于8月4日至6日在东莞松山湖举行,在HarmonyOS端云开放能力技术分论坛上,华为为广大开发者们介绍了HarmonyOS SDK开放能力在基础开发架构、功能特性等方面的变化之处,通过将常见的通用能…...

数字经济对产业结构升级和创业增长的影响(2011-2021年)

参照刘翠花(2022)的做法,对来自中国人口科学《数字经济对产业结构升级和创业增长的影响》一文中的基准回归部分进行复刻。文章从理论层面分析数字经济发展对产业结构升级、创业增长的影响及其机理,并利用2011-2021年中国省级面板数…...

GPT-4助力数据分析:提升效率与洞察力的未来关键技术 | 京东云技术团队

摘要 随着大数据时代的到来,数据分析已经成为企业和组织的核心竞争力。然而,传统的数据分析方法往往无法满足日益增长的数据分析需求的数量和复杂性。在这种背景下,ChatGPT-4作为一种先进的自然语言处理技术,为数据分析带来了革命…...

Zabbix6 对接飞书告警

文章目录 Zabbix对接飞书告警背景创建飞书群组Zabbix配置创建告警媒介类型创建动作用户关联飞书告警 Zabbix对接飞书告警 背景 运维 你看下他的进程是不是挂了,之前在9点28分有发消息的,这次没有发消息 哐哐哐的去看了一通,确实有个进程之前…...

Javascript异步编程的4种方法

你可能知道,Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一…...

【MySQL】表的内外连接

目录 一、内连接 二、外连接 1、左外连接 2、右外连接 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。 语法: select 字段 from 表1 i…...

详解Mysql——第一篇/连接查询

mysql的连接查询,相必在网上都能找到很多的教程,博主今天不做老话常谈,不走重复路线 1.建表 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id) – –课程编…...

uniapp获取屏幕宽度时 获取不到移动设备中内容盒子宽度

首先 :我使用的是uniapp vue3语法: 问题: 我出现这个问题是IOS 设备发现的,data.boxWidth为0 代码: const initCreated () > {const query uni.createSelectorQuery().in(instance.proxy);const el query.select…...

篇十二:代理模式:控制对象访问

篇十二:“代理模式:控制对象访问” 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模式的资料&#xff0c…...

P1657 选书

1:思路:一看数据,嗯....!,爆搜嘛?,看一眼题目,嗯!!!,爆搜! 配上俺的无敌小剪枝,按下拿下! 2:暴力枚举每个人获…...

代码随想录第46天 | 139. 单词拆分、多重背包

139. 单词拆分 确定dp数组以及下标的含义 dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词。 确定递推公式 如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是tru…...

Unreal View Model结合GAS使用

这个东西真的难用,各种问题,记录下 官方文档 bilibili教学 开启插件 插件开启 Viewmodel: build.cs内PublicDependencyModuleNames加上ModelViewViewModel 创建ViewModel类 #pragma once#include "CoreMinimal.h" #include &quo…...

Spring-Cloud-Loadblancer详细分析_2

LoadBalancerClients 终于分析到了此注解的作用,它是实现不同服务之间的配置隔离的关键 Configuration(proxyBeanMethods false) Retention(RetentionPolicy.RUNTIME) Target({ ElementType.TYPE }) Documented Import(LoadBalancerClientConfigurationRegistrar…...

uniapp 左右滑动切换页面并切换tab

实现效果如图 要实现底部内部的左右滑动切换带动上方tab栏的切换&#xff0c;并且下方内容要实现纵向滚动 &#xff0c;所以需要swiper&#xff0c;swiper-item,scroll-view组合使用 tab栏部分 <view class"tabs"><view class"tab_item" v-for&…...

FinClip 支持小程序维度域名配置;桌面端体验活动进行中

FinClip 的使命是使您&#xff08;业务专家和开发人员&#xff09;能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点&#xff0c;看看是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f…...

已有公司将ChatGPT集成到客服中心以增强用户体验

Ozonetel正在利用ChatGPT来改善客户体验。该公司表示&#xff0c;他们通过使用ChatGPT收集与客户互动过程收集的“语料”能够更有针对性地提高服务效率&#xff0c;提供个性化的用户体验&#xff0c;并实现更高的客户满意度。[1] 通过这套解决方案&#xff0c;客服中心将拥有一…...

如何解决暗黑破坏神2存档编辑的复杂性问题:d2s-editor可视化解决方案深度解析

如何解决暗黑破坏神2存档编辑的复杂性问题&#xff1a;d2s-editor可视化解决方案深度解析 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 面对暗黑破坏神2存档编辑的复杂十六进制操作和技术门槛&#xff0c;传统方法让普通玩家望…...

**发散创新:基于Python与ROS的机器人运动控制实战解析**在现代机器人系统开发

发散创新&#xff1a;基于Python与ROS的机器人运动控制实战解析 在现代机器人系统开发中&#xff0c;运动控制是实现精准操作的核心环节。本文将以 Python ROS&#xff08;Robot Operating System&#xff09; 为技术栈&#xff0c;深入剖析如何通过编程语言完成对差速驱动机器…...

告别重复劳动:5分钟掌握Python剪映自动化,视频剪辑效率提升10倍!

告别重复劳动&#xff1a;5分钟掌握Python剪映自动化&#xff0c;视频剪辑效率提升10倍&#xff01; 【免费下载链接】JianYingApi Third Party JianYing Api. 第三方剪映Api 项目地址: https://gitcode.com/gh_mirrors/ji/JianYingApi 你是否厌倦了每天重复同样的视频剪…...

DeepSeek-R1如何改变具身智能游戏规则?开源大模型实战解析

DeepSeek-R1如何重构具身智能开发范式&#xff1a;从开源模型到机器人落地的技术跃迁 当波士顿动力的Atlas完成一套流畅的后空翻动作时&#xff0c;观众惊叹的不仅是机械的精准控制&#xff0c;更是其背后蕴含的智能决策能力。这种将认知与物理动作无缝衔接的技术&#xff0c;正…...

手把手教你学Simulink——基于Simulink的电机-变速箱一体化换挡平顺性控制

目录 手把手教你学Simulink——基于Simulink的电机-变速箱一体化换挡平顺性控制​ 摘要​ 一、背景与挑战​ 1.1 为什么电机的“快”反而成了换挡的“痛”?​ 1.2 核心痛点与设计目标​ 二、系统架构与核心控制推导​ 2.1 整体架构:动力总成的“接力赛”​ 2.2 核心控…...

Keil5开发STM32的AI伙伴:Phi-4-mini-reasoning辅助嵌入式代码编写

Keil5开发STM32的AI伙伴&#xff1a;Phi-4-mini-reasoning辅助嵌入式代码编写 1. 为什么需要AI辅助嵌入式开发 嵌入式开发向来以门槛高著称&#xff0c;特别是STM32这类ARM架构的MCU开发。寄存器配置复杂、外设驱动繁琐、调试过程耗时&#xff0c;这些问题让不少开发者头疼。…...

别再信网上乱排的降AI率工具榜单了,真实排名看这里

标题党的降AI率榜单我见太多了。 “震惊!2026年降AI率工具第一名竟然是它!” “重磅发布!降AI率工具权威排名TOP10!” “2026最新!学生党必看的降AI率榜单!” 点进去看内容,不是文字游戏就是软文广告。真正靠谱的、基于实测数据的榜单,少之又少。 今天我就不搞那些虚头巴脑的…...

AI英语教育平台的主要功能

在2026年的技术背景下&#xff0c;开发一个竞争领先的AI英语教育平台需涵盖从“底层学习逻辑”到“沉浸式交互”的全方位功能。以下是该平台的主要功能模块描述。1.个性化学习路径与自适应引擎平台的核心是大脑&#xff0c;它通过分析用户的初始水平、兴趣领域&#xff08;如商…...

终极网页视频下载指南:猫抓Cat-Catch浏览器扩展的完整使用教程

终极网页视频下载指南&#xff1a;猫抓Cat-Catch浏览器扩展的完整使用教程 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否经常遇到想保存网…...

Matlab 2023b离线安装Embedded Coder支持包保姆级教程(含ARM Cortex-M/A/R及STM32)

Matlab 2023b离线安装Embedded Coder支持包全流程指南&#xff08;ARM Cortex-M/A/R及STM32专版&#xff09; 当你在实验室的内网环境中&#xff0c;或是身处校园网限速的深夜&#xff0c;看着Matlab官网那缓慢的下载进度条&#xff0c;是否感到无比焦虑&#xff1f;作为曾经在…...