ArkTS - 网络请求

一、Axios请求 

应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。

前端开发肯定都使用过一个叫axios第三方库,它是是一个基于 promise 的网络请求库,可以用于浏览器和 node.js,它是前端最流行的发送ajax请求的第三方库。

如果你不知道什么是promise,推荐看看我的上一篇博客  网络请求 - 异步编程详解-CSDN博客

1、ohpm包管理器

OHPM CLI 作为鸿蒙生态三方库的包管理工具,支持OpenHarmony共享包的发布、安装和依赖管理。

  1. 下载ohpm工具包,点击链接获取。
  2. 解压文件,进入“ohpm/bin”目录,打开命令行工具,执行如下指令初始化ohpm。

安装完成之后,执行如下命令:

ohpm -v

终端输出为版本号(如:0.6.10),则表示成功

2、axios快速使用

进入项目目录,然后输入下面命令

1、下载axios

ohpm install @ohos/axios

2、开放网络权限

使用该功能需要申请ohos.permission.INTERNET权限。

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

此时我们再次看向项目的目录,其中的oh-package.json5就是管理依赖的文件,类似于spring的pom.xml

在我们安装完axios依赖之后就可以在dependecies中看到我们安装的依赖

示例

其中有三个常用属性

名称类型描述
statusnumber响应状态码
headersObject响应头
dataany服务器返回的响应体

现在我们随便搭建一个后端服务器,我这里是使用了springboot实现了一个简单的接口返回一个json数据

创建一个TypeScript文件,写数据api(为什么不使用ArkTS是因为还要写entry、build等东西,对于数据api来说是没有意义的,所以直接创建一个typescript文件来写)

import axios from "@ohos/axios";class MoreModel {baseURL: string = "http://localhost:8888/"getMore(): any {return axios.get(`${this.baseURL}boiler/status`,{params: {}}).then(response => {if (response.status == 200) {console.log("请求成功,数据格式为", response.data)console.log("由于data是一个json对象格式,所以想看数据的信息要先给他转成一个字符串")console.log(JSON.stringify(response.data))return response.data;} else {console.log("请求失败")}}).catch(err => {console.log(err);})}
}const moreModel = new MoreModel();export default moreModel as MoreModel

在ArkTS中调用TS的函数

查看控制台日志

成功接收后端接口数据


二、代码优化

1、axios拦截器

拦截器,顾名思义就是在你发起axios请求或是得到响应时先统一拦截一下,在这里做出一些逻辑处理,如判断状态码,获取token等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于曲率、曲率半径和曲率圆,看这几篇文章就够啦

关于曲率、曲率半径和曲率圆的内容,是考研数学数学一和数学二大纲中明确要求掌握的内容,但这部分内容在很多教材教辅以及练习题中较少涉及。在本文中,荒原之梦考研数学网就为大家整理了曲率、曲率半径和曲率圆方程相关的概念、基础知识以及练…

LauraGPT

git:https://github.com/alibaba-damo-academy/FunCodec 文章目录 model archAudioTokenizermodel init model arch text-embedding 用千问的模型参数初始化;AudioEncoder用asr-conformer的参数初始化;所有的参数都参与更新,除了C…

实时语义分割模型PP-LiteSeg论文解读

paper:PP-LiteSeg: A Superior Real-Time Semantic Segmentation Model official implementation:https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.8/paddleseg/models/pp_liteseg.py 本文的创新点 提出了一种灵活的轻量级解码器&#xf…

SpringBoot+Vue轻松实现考试管理系统

简介 本系统基于 Spring Boot 搭建的方便易用、高颜值的教学管理平台,提供多租户、权限管理、考试、练习、在线学习等功能。主要功能为在线考试、练习、刷题,在线学习。课程内容支持图文、视频,考试类型支持考试、练习、问卷。 源码下载 网…

Linux|服务器|简单记录备忘VMware虚拟机开启桌面失败报错:VMware: No 3D enabled (0, Success).的解决

一, VMware虚拟机 Linux操作系统,centos7版本,安装完桌面后,执行startx 命令后 ,报错:VMware: No 3D enabled (0, Success). 桌面没有启动成功 完整日志输出如下: [rootnode4 ~]# startx x…

上传自己的依赖到maven仓库 -- 保姆级复盘

上传自己的依赖到maven仓库 -- 保姆级复盘 1、准备工作1.1、安装Git1.2、将需要上传的代码先上传到Gitee中1.2.1、上传步骤1.2.2、如果出现以下错误(主要原因是gitee中README.md文件和本地不一致,或者不在本地代码目录中) 2、sonatype注册登录…

文件批量重命名:高效整理文件的技巧,随机汉字重命名文件

在数字化时代,每天都要处理大量的文件,无论是文档、图片还是音频、视频。随着时间的推移,文件库可能会变得混乱不堪,难以找到想要的文件,可见文件名有着重要的作用。现在一起来看云炫文件管理器高效的文件整理方法&…

网络调试 TCP,开发板用静态地址-入门7

用两台电脑(无线网络)做实验 1.1, 在电脑A上设置为Server如下: 选择TCP Server后,直接跳出用本机IP做为“本地主机地址” 1.2在 电脑B上设置为Client, 远程主机地址设置为Server的 IP 1.3, 在A, B两台电脑上能够互相发送数据 用…

构建自己的私人GPT

创作不易,请大家多鼓励支持。 在现实生活中,很多人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的私人GPT变得非常重要。 一、本地部署…

每天一杯羊奶,让身体更健康

每天一杯羊奶,让身体更健康 羊奶作为一种天然的健康饮品,越来越受到人们的关注和喜爱。它不仅口感醇厚,营养丰富,而且具有独特的保健功效。今天,小编羊大师带大家详细介绍一下每天喝一杯羊奶对身体的好处。 羊奶中的…

Python基础知识总结3-面向对象进阶知识

面向对象三大特征介绍 继承子类扩展父类语法格式关于构造函数:类成员的继承和重写查看类的继承层次结构 object根类dir() 查看对象属性重写 __str__() 方法 多重继承MRO方法解析顺序super()获得父类定义多态特殊方法和运算符重载特殊属性 对象的浅拷贝和深拷贝组合_…

如何利用MiniTab的命令行来提高数据建模效率

使用MiniTab进行数据建模时,如果涉及到需要多次更改数据、多次查看模型,感兴趣的同学可以尝试一下,把命令行显示出来,通过命令行的形式来执行,避免在繁多的菜单中到处查找。 操作方式如下图: 点击菜单“查…

junit单元测试:使用@ParameterizedTest 和 @CsvSource注解简化单元测试方法

在平常的开发工作中,我们经常需要写单元测试。比如,我们有一个校验接口,可能会返回多种错误信息。我们可以针对这个接口,写多个单元测试方法,然后将其场景覆盖全。那么,怎么才能写一个测试方法,…

业务项目中Echarts图表组件的封装实践方案

背景:如果我们的项目是一个可视化类/营销看板类/大屏展示类业务项目,不可避免的会使用到各种图表展示。那在一个项目中如何封装一个图表组件既能够快速复用、UI统一,又可以灵活扩充Echarts的各种复杂配置项配置就变得极为重要。 封装目标 符…

算法第十二天-矩形区域不超过K的最大数值和

矩形区域不超过K的最大数值和 题目要求 解题思路 来自[宫水三叶] 从题面来看显然是一道[二维前缀和]的题目。本题预处理前缀和的复杂度为O(m* n) 搜索所有子矩阵需要枚举[矩形左上角]和[矩形右下角],复杂度是 O ( m 2 ∗ n 2 ) O(m^2 * n^2) O(m2∗n2)&#xff0c…

【数据库原理】(5)关系数据库的关系数据结构

关系及相关概念 在关系模型中,无论是实体还是实体之间的联系均由关系(二维表)来表示。 1.域(Domain) 定义:域是一组具有相同数据类型的值的集合。例子:实数集合、整数集合、英文字母集合等。 2.笛卡儿积(Cartesian…

YOLOv5改进 | 卷积篇 | SAConv轻量化的可切换空洞卷积(附修改后的C3+Bottleneck)

一、本文介绍 本文给大家带来的改进机制是可切换的空洞卷积(Switchable Atrous Convolution, SAC)是一种创新的卷积网络机制,专为增强物体检测和分割任务中的特征提取而设计。SAC的核心思想是在相同的输入特征上应用不同的空洞率进行卷积,并通过特别设计的开关函数来融合这…

java基础之Java8新特性-Stream(流)

简介 流(Stream)是 Java 8 引入的一种处理集合数据的抽象概念,它提供了一种更简洁、更灵活的方式来操作和处理集合数据。流可以看作是一系列元素的管道,可以对这些元素进行筛选、转换、排序、归约等操作,实现各种数据…

【人工智能】深入了解人工智能的核心算法与应用实践

人工智能 学习AI要看的第一本书人工智能应当以人为本人工智能(第3版)通晓六点,明白人工智能是怎么回事基本概念和历史基础知识基于知识的系统高级专题现在和未来安全和编程 人工智能已经是基础学科 学习AI要看的第一本书 人工智能知识对于当…

Unix操作系统的前世今生

Unix是一种多用户、多任务操作系统,最初由AT&T贝尔实验室的肯汤普逊(Ken Thompson)和丹尼斯里奇(Dennis Ritchie)等人开发于上世纪70年代初。它被设计成一种通用的操作系统,支持跨多种硬件平台&#xf…