【HarmonyOS 4.0】网络请求 - axios

2024-09-03 09:04

本文主要是介绍【HarmonyOS 4.0】网络请求 - axios,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. axios 相当于鸿蒙应用项目的一个第三方库,鸿蒙应用项目使用ohpm管理(包括安装,卸载等)第三方库。除了axios,还有很多其他的第三方库可供开发者使用,所有的第三方库都收录在OpenHarmony三方库中心仓。

1. 安装 axios 库

1.1 查看 ohpm 安装目录
1.2 把 ohpm 安装目录添加到电脑Path环境变量中
1.3 安装 axios:ohpm i @ohos/axios

2. axios 快速入门

1.1 导入 axios:import axios from '@ohos/axios'
1.2 创建 axios 实例

const instance = axios.creat({baseURL: 'http://<ip>:<port>',timeout: 1000
})

1.3 发送 http 请求

// 获取手机验证码
Button('发送验证码').onClick(() => {instance.get('/word/user/code', {params: {phone: this.phone}}).then((response) => {this.code = response.data.data}).catch((error) => {console.info(error)})}) 
// 登录
Button('登录').onClick(() => {instance.post('/word/user/login', {params: {phone: this.phone, code: this.code}}).then((response) => {// response.data.data}).catch((error) => {console.info(error)})})

1.4 获取请求结果,处理异步操作 async await 1

// 登录
Button('登录').onClick(async () => {let response = await instance.post('/word/user/login', {params: {phone: this.phone, code: this.code}})console.info(response.data.data)})// 登录
Button('登录').onClick(async () => {try {let response = await instance.post('/word/user/login', {params: {phone: this.phone, code: this.code}})console.info(response.data.data)} catch (error){console.info(error)}})

3. axios 拦截器

  1. axios 可以分别为请求和响应配置拦截器,请求拦截器可在请求发送前拦截,响应拦截器可以在 then() 和 catch() 方法执行前进行拦截。
    在这里插入图片描述
  2. 在拦截器中,开发者可以对请求的参数或者响应的结果做一些统一的处理,比如在请求拦截器中统一为所有请求增加 token 这一 Header,在响应拦截器中统一处理错误响应。

3.1 请求拦截器

instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {return config
}, (error: AxiosError) => { // 比如手机客户端没有联网return Promise.reject(error)
})

3.2 响应拦截器

instance.interceptors.response.use((response: AxiosResponse) => {return response
}, (error: AxiosError) => {return Promise.reject(error)
})

  1. await关键字:它会等待后面的异步操作执行完成,并解析异步操作的结果。
    加上 await 关键字之后,代码的返回值不再是一个 Promise对象,而是 Promise 当中所包含的这个异步操作的结果,也就是说,我们现在就可以直接接收这个结果。这个结果和 Promise 的 then() 方法的回调函数是一回事,操作成功的异步结果处理完了。
    使用 try {} catch (error) {},可以在 catch 中捕获异常结果,异步操作的异常处理完了。
    使用 async await 关键字能让异步的代码看起来更像同步的代码,可读性要更好,代码更好理解。 ↩︎

这篇关于【HarmonyOS 4.0】网络请求 - axios的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132578

相关文章

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转