鸿蒙网络请求

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

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

});

相关推荐
子榆.3 分钟前
Flutter 与开源鸿蒙(OpenHarmony)分布式能力实战:基于软总线实现跨设备协同
flutter·开源·harmonyos
鸿蒙开发工程师—阿辉12 分钟前
HarmonyOS 5 上下文的使用:AbilityContext 的使用
华为·harmonyos
音浪豆豆_Rachel1 小时前
Flutter鸿蒙文件选择器平台适配层:标准化接口与平台实现的桥梁
flutter·harmonyos
音浪豆豆_Rachel1 小时前
Flutter鸿蒙化之深入解析Pigeon基本数据类型:primitive.dart全解
flutter·华为·harmonyos
云川之下1 小时前
【网络】华为AR201路由器
网络·华为·智能路由器
IT充电站2 小时前
鸿蒙应用开发之通过Swiper实现京东m站功能入口效果
harmonyos
IT充电站2 小时前
鸿蒙应用开发之通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果
harmonyos
C雨后彩虹2 小时前
幼儿园分班
java·数据结构·算法·华为·面试
IT充电站2 小时前
鸿蒙应用开发之通过ListItemGroup、nestedScroll实现商城活动可折叠分组滚动效果
harmonyos