鸿蒙OS开发实例:【工具类封装-http请求】

news/2024/5/10 6:10:25/文章来源:https://blog.csdn.net/m0_62167422/article/details/137091710

import http from '@ohos.net.http'; import promptAction from '@ohos.promptAction';

封装HTTP接口请求类,提供格式化的响应信息输出功能。 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本为 api 9 及以上。

示例:

 import { MyHttpUtil } from '../common/utils/MyHttpUtil';async function fetchWeatherData() {const request = await MyHttpUtil.request('https://api.oioweb.cn/api/weather/GetWeather', 'GET', {}, true);}
鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术
鸿蒙技术文档开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。或+mau123789学习,是v喔

搜狗高速浏览器截图20240326151344.png

  // 定义日志标识符private static readonly LOG_TAG: string = "====MyHttpUtil";/*** 发起HTTP请求的方法封装.* @param url API 地址,若不包含协议头,则自动添加当前应用的主机域名。* @param method 请求方法,如 'GET', 'POST' 等。* @param params 当HTTP请求方法为GET、OPTIONS、DELETE、TRACE、CONNECT时,此参数用于传递查询字符串;对于POST方法,这些数据会被作为请求体内容。* @param showErrorToast 若为 true,在接口业务错误时,向用户显示 toast 提示信息。* @returns 成功时返回接口响应数据,请求异常时返回 undefined。*/public static async request(url: string, method: string, extraData: object, showErrorToast: boolean): Promise<any | undefined> {try {if (!url) {return undefined;}console.info(`${MyHttpUtil.LOG_TAG}: Request started with URL:`, url);let request = http.createHttp();let options = {method: method, //http.RequestMethod.GET 或 http.RequestMethod.POSTheader: {'Content-Type': 'application/json'},readTimeout: 50000, //读取超时时间。单位为毫秒(ms),默认为60000ms。 设置为0表示不会出现超时情况。connectTimeout: 50000, //连接超时时间。单位为毫秒(ms),默认为60000ms。extraData: extraData,} as http.HttpRequestOptions;let result = await request.request(url, options);result = JSON.parse(JSON.stringify(result))console.info(MyHttpUtil.LOG_TAG, 'request end url:', url); //请求结束后console.info(MyHttpUtil.LOG_TAG, 'request method:', method);console.info(MyHttpUtil.LOG_TAG, 'request extraData:', JSON.stringify(extraData));// console.info(MyHttpUtil.LOG, 'request result', JSON.stringify(result, null, 2));console.info(MyHttpUtil.LOG_TAG, 'request result', JSON.stringify(result));if (result.responseCode == 200) {console.info(MyHttpUtil.LOG_TAG, 'request code 200 result', result.result.toString());console.info(MyHttpUtil.LOG_TAG, 'request code 200 result', JSON.stringify(JSON.parse(result.result.toString()), null, 2));// console.info(MyHttpUtil.LOG, 'request code 200 result',  JSON.parse(result.result.toString()));}//判断业务异常时,弹出对应的toastif (showErrorToast) { //TODO 还需要追加自己业务的判断promptAction.showToast({message: '这里打印接口业务的message错误信息,根据自己公司接口业务情况封装。',duration: 2000,bottom: '375lpx'})}return result;} catch (error) {console.error(MyHttpUtil.LOG_TAG, 'request end url:', url);console.error(MyHttpUtil.LOG_TAG, 'request method:', method);console.error(MyHttpUtil.LOG_TAG, 'request extraData:', JSON.stringify(extraData));console.error(MyHttpUtil.LOG_TAG, 'request', JSON.stringify(error));} finally {return undefined}}
}

我们程序员都知道学习开发技术,最先是从语言学起,鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力

内容包含:更多鸿蒙开发应用知识已更新gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md参考前往。

  • ArkTS
  • 声明式ArkUI
  • 多媒体
  • 通信问题
  • 系统移植
  • 系统裁剪
  • FW层的原理
  • 各种开发调试工具
  • 智能设备开发
  • 分布式开发等等。

这些就是对往后开发者的前景分享,希望大家多多点赞关注喔!

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

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

相关文章

MySQL 索引:索引为什么使用 B+树?

Hash 索引不支持顺序和范围查询&#xff1b; 二叉查找树(BST)&#xff1a;解决了排序的问题&#xff0c;极端情况下可能会退化成线性链表&#xff0c;查询效率急剧下降&#xff1b; 平衡二叉树(AVL) &#xff1a;通过旋转解决了平衡的问题&#xff0c;但是旋转操作效率太低&am…

Flume超级无敌详细讲解

简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志进行收集(collecting)、汇聚(aggregating)和传输(moving)的分布式机制。 图-1 Flume图标 Flume本身提供了较为简易的流式结构,使得开发者能够较为简易和方便的搭建Flume的流动模型。 图-2 Flume…

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记并附练习代码 ipynb文件)

小土堆PyTorch入门教程笔记 最近在观看PyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】顺便做点笔记&#xff0c;方便回看&#xff0c;同时也希望记录的笔记能够帮助到更多在入门的小伙伴~ 【注】仅记录个人觉得重要的知识&#xff0c…

在线接口文档预言方案

在线接口文档预言方案 要求&#xff1a; ​ 支持自动生成接口文档 ​ 能够支持在线测试(http&#xff0c;websocket) ​ 对代码没有侵入性 一、目前涉及的相关技术收集 sudo apt update #更新数据 sudo apt upgrade #更新软件 sudo apt install openssh-server #下载安装…

Qt教程 — 3.7 深入了解Qt 控件: Layouts部件

目录 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 2.2 QGridLayout组件-网格布局 2.3 QFormLayout组件-表单布局 在Qt中&#xff0c;布局管理器&#xff08;Layouts&#xff09;是用来管理窗口中控件位置和大小的重要工具。布局管理器可以确保窗口中的控件在…

鸿蒙开发图形图像:【图形子系统】

图形子系统 图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块&#xff0c;构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。 1.1 轻量系统 简介 图形子系统主要包括…

武忠祥《660题》高效刷题包+资料分享

660题的难度书虽然比较难&#xff0c;对于基础的考察比较深入&#xff0c;所以&#xff0c;有没有一种可能&#xff0c;做题太慢&#xff0c;是因为基础不好导致的&#xff01; 所以再继续做下去&#xff0c;就没有什么意义了&#xff0c;因为这就像是用一把钝刀去砍树&#x…

Linux 反引号、单引号以及双引号的区别

1.单引号—— 单引号中所有的字符包括特殊字符&#xff08;$,,和\&#xff09;都将解释成字符本身而成为普通字符。它不会解析任何变量&#xff0c;元字符&#xff0c;通配符&#xff0c;转义符&#xff0c;只被当作字符串处理。 2.双引号——" 双引号&#xff0c;除了$,…

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…

汽车ECU的虚拟化技术(四) -- 对MCU虚拟化实现难点的思考

目录 1.OEM面临的难点 2.Hypervisor的难点思考 2.1 VMs部署到物理内核上的实现方式 2.2 VM调度机制 3.小结 1.OEM面临的难点 为什么汽车ECU在逐渐倡导虚拟化&#xff0c;主要原因是整车电子电气架构从分布式往集中式演进&#xff0c;OEM希望将以前多个ECU的功能聚合到一个…

腾讯云服务器新购、续费、升级如何领取优惠券?

腾讯云作为国内领先的云计算服务提供商&#xff0c;一直致力于为用户提供高效、稳定、安全的云服务。为了吸引广大用户上云&#xff0c;腾讯云经常推出各种优惠活动&#xff0c;其中就包括服务器新购、续费、升级的优惠券。本文将为大家详细介绍如何领取腾讯云服务器优惠券&…

将本地项目上传至码云

1.打开git&#xff0c;然后进入到项目目录 2.进入到项目目录&#xff0c;然后进行git的初始化 成功后本地项目目录内会多出一个“.git”文件&#xff1a; 指令介绍&#xff1a; git init -- 建立本地仓库 3.在码云上创建仓库&#xff0c;名为“MyMoney” 创建过程参考&…

2024最新Win系统下VSCode下载安装与配置C/C++教程

2024最新Win系统下VSCode下载安装与配置C/C教程 文章目录 2024最新Win系统下VSCode下载安装与配置C/C教程1、下载安装VSCode2、安装运行时环境GCGC的环境配置 3、安装VSCode插件4、配置程序调试环境4.1确定文件存储路径4.2新建文件夹【.vscode】4.3在.vscode文件夹里新建四个配…

【前端学习——js篇】5.事件循环

详细&#xff1a;https://github.com/febobo/web-interview 5.事件循环 js是一种单线程语言&#xff0c;同一时间内只能做一件事情&#xff0c;为了避免单线程阻塞的方法就是事件循环。 在javascript当中&#xff0c;所有的任务都可以分为&#xff1a; 同步任务&#xff1a;按…

Linux 系统 docker搭建LNMP环境

1、安装nginx docker pull nginx (默认安装的是最新版本) 2、运行nginx docker run --name nginx -p 80:80 -d nginx:latest 备注&#xff1a;--name nginx 表示容器名为 nginx -d 表示后台运行 -p 80:80 表示把本地80端口绑定到Nginx服务端的 80端口 nginx:lates…

基于51单片机的拔河游戏Proteus仿真

地址&#xff1a;https://pan.baidu.com/s/18LMEo-_WYcoyTOkWYJ0NUg 提取码&#xff1a;1234 仿真图&#xff1a; 1&#xff09;设计一个能进行拔河游戏的电路&#xff0c;通过按键控制游戏开始和复位。 2&#xff09;电路使用9个发光二极管排成一行&#xff0c;中间的LED为拔…

第二百二十八回

文章目录 1. 概念介绍2. 修改方法2.1 修改形状2.2 修改颜色2.3 修改位置 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何创建以图片为背景的页面"相关的内容&#xff0c;本章回中将介绍如何修改按钮的形状.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. …

动态规划课堂7-----两个数组的dp问题(等价代换)

目录 引言&#xff1a; 例题1&#xff1a;最长公共子序列 例题2&#xff1a;不同的子序列 例题3&#xff1a;通配符匹配 例题4&#xff1a;正则表达式 结语&#xff1a; 引言&#xff1a; 本节我们就要进入两个数组的dp问题的学习&#xff0c;通过前面几个章节的学习&…

终于来了!FastGPT 正式兼容 GPT 应用

终于来了&#xff01;FastGPT 正式兼容 GPT 应用 FastGPT V4.7 正式加入了工具调用功能&#xff0c;可以兼容 GPTs 的 Actions。这意味着&#xff0c;你可以直接导入兼容 GPTs 的 Agent 工具&#xff01; Gapier 是一组无需编码&#xff0c;开箱可用的&#xff0c;并且已经适配…

快速入门go语言

环境搭建 编译器安装 1、编译器下载地址 2、打开命令行模式&#xff0c;输入go version ide安装 ide下载地址 依赖管理 goproxy 1、goproxy代理地址 // 阿里云 https://mirrors.aliyun.com/goproxy // 微软 https://goproxy.io // 七牛 https://goproxy.cn 2、ide配置g…