鸿蒙网络请求

鸿蒙系统不断进化,适配的库也越来越丰富,其中网络请求是应用的一大需求。

Axios 是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中,包括:

http 请求

Promise API

request 和 response 拦截器

转换 request 和 response 的 data 数据

自动转换 JSON data 数据

已经有同学针对鸿蒙进行了适配并封装了库ohos_axios,地址是:OpenHarmony-SIG/ohos_axios (gitee.com)

这里使用ohos_axios通过一个实际玩安卓项目的开发进行学习。

代码地址: carlshen/WanHarmony: Wanandroid For HarmonyOS (github.com)

必须感谢鸿洋大佬及其相关作者。

提到网络请求,就要处理异步及回调的逻辑。比如:promise和async/await区别

1 promise是es6的语法,async await是es7的新特性

2 Promise。是一种应用层的解决方案,它提供了一种方式来处理异步操作的结果,具有三种状态:pending(进行中)、resolved(已完成)和rejected(已失败)。

它允许开发者通过链式调用.then()方法来处理异步操作的结果,但这种方式可能导致回调地狱的问题,并且调试不方便。

3 async/await。是语言层的解决方案,它允许开发者像编写同步代码一样编写异步代码。async函数内部可以使用await等待异步操作的结果,这样可以避免回调地狱的问题。

async/await更加优雅简洁,代码看起来像同步代码一样,不需要像使用Promise那样调用.then()来获取返回结果,并且方便进行断点调试。

Axios的拦截器是它的一大特色,在请求或响应被 then 或 catch 处理前拦截它们,也方便进行调试监控。

// 添加请求拦截器

axios.interceptors.request.use((config:InternalAxiosRequestConfig) => {

// 对请求数据做点什么

return config;

}, (error:AxiosError) => {

// 对请求错误做些什么

return Promise.reject(error);

});

// 添加响应拦截器

axios.interceptors.response.use((response:AxiosResponse)=> {

// 对响应数据做点什么

return response;

}, (error:AxiosError)=> {

// 对响应错误做点什么

return Promise.reject(error);

});

相关推荐
resh_people12 小时前
开源鸿蒙平台 KMP_CMP 三方库「Kermit」适配全流程
华为·开源·harmonyos
李游Leo13 小时前
HarmonyOS 7 EasyGo + ArkUI Navigation:平行视界主副页筛选事务与跨栏撤销一致性【鸿蒙心迹】
华为·harmonyos
HwJack2014 小时前
【共创稿事节】HarmonyOS 7空间应用的可用性测试和体验评估小方法分享
华为·harmonyos·可用性测试
m0_7381858214 小时前
Flutter 鸿蒙化实战:flutter_scankit 适配 OpenHarmony,华为 ScanKit 扫码
flutter·华为·harmonyos·鸿蒙
zhangfeng113315 小时前
Ag / Cu / Au / Ru / Ir / Rh银 铜 金 钌铱 铑 纳米尺度下的 导电性 + 扩散/迁移缺点
人工智能·华为·ai编程·npu
用户1179104883316 小时前
别让AI随便启动你的LSP:hmharness给语言服务器加SHA256门禁 GitHub:swsgbl/hmharness
ai编程·harmonyos
李游Leo20 小时前
HarmonyOS 7 + Share Kit-Window Kit:精准碰一碰屏幕坐标的窗口换算与落点拒绝【鸿蒙心迹】
华为·harmonyos
翼辉cto20 小时前
Compose Multiplatform KV 存储库 multiplatform-settings 的 OpenHarmony 鸿蒙化适配实战
华为·harmonyos
事圆则缓21 小时前
Flutter 开发鸿蒙实战:从 OpenHarmony 适配版到 HAP 构建与插件接入
flutter·华为·harmonyos
传奇开心果编程1 天前
【ArkUI进阶练中学】第9课:分布式能力与多设备协同
学习·ui·华为·harmonyos