鸿蒙网络请求

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

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);

});

相关推荐
zhgjx_chen7 小时前
ENSP综合实验(中小型网络)
服务器·网络·华为
塞尔维亚大汉7 小时前
移植案例与原理 - startup子系统之bootstrap_lite服务启动引导部件(1)
harmonyos
跳河轻生的鱼9 小时前
海思Linux(一)-Hi3516CV610的开发-ubuntu22_04环境创建
linux·单片机·学习·华为
轻口味13 小时前
【每日学点鸿蒙知识】跳转三方地图、getStringSync性能、键盘避让模式等
华为·harmonyos
儿歌八万首13 小时前
鸿蒙ArkUI实现部门树列表
华为·harmonyos·鸿蒙·arkui
IT 古月方源14 小时前
华为设备的VRP系统详解
运维·网络·网络协议·网络安全·华为
万少15 小时前
鸿蒙元服务实战-笑笑五子棋(5)
前端·harmonyos·canvas
塞尔维亚大汉15 小时前
移植案例与原理 - startup子系统之syspara_lite系统属性部件
操作系统·harmonyos
网络工程师鸡哥16 小时前
什么是VLAN?
运维·网络·经验分享·华为
儿歌八万首16 小时前
鸿蒙 ArkUI实现地图找房效果
开发语言·华为·鸿蒙·arkui