鸿蒙网络请求

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

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

});

相关推荐
我在看你呵呵笑6 小时前
GD32VW553-IOT开发板移植适配openharmony
物联网·华为·harmonyos
在人间耕耘7 小时前
HarmonyOS 开发学习分享:从入门到认证的完整路径
华为·harmonyos
森之鸟8 小时前
开发中使用——鸿蒙子页面跳转到指定Tab页面
harmonyos·鸿蒙
程序员潘Sir10 小时前
HarmonyOS编写教师节贺卡
harmonyos·鸿蒙
℃CCCC12 小时前
请求库-axios
开发语言·华为·网络请求·harmonyos·deveco studio·axios请求·arkts编程
光芒Shine13 小时前
【ArkTS-装饰器】
harmonyos
花先锋队长13 小时前
从社交破冰到学习规划,鸿蒙5开启智慧校园新生活
华为·生活·harmonyos
Cheney82216 小时前
华为Ai岗机考20250903完整真题
人工智能·华为
用户72278681234418 小时前
HarmonyOS实现快递APP自动识别地址
harmonyos