HarmonyOS 鸿蒙Next axios封装
HarmonyOS 鸿蒙Next axios封装 应用网络接口请求封装库,axios使用及封装
在此基础上还可以定义get、post等进一步简化逻辑:
//封装网络请求
import axios, { AxiosError, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from '@ohos/axios'
import { IStandardBackInfo, IUserToken } from './interfaces'
import { promptAction } from '@kit.ArkUI'
//定义基地址
const instance = axios.create({ baseURL: 'https://www.abcdefg.com' })
//添加请求拦截器
instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
const userTokens = AppStorage.get("userToken") as IUserToken
const userToken = userTokens.token
const userTokenRefresh = userTokens.refresh_token
const ifRefresh = AppStorage.get("ifRefresh") as boolean
if (userToken !== '') {
if (ifRefresh) {
config.headers.Authorization = `Bearer ${userTokenRefresh}`
} else {
config.headers.Authorization = `Beare ${userToken}`
}
}
return config
}, (error: AxiosError) => {
return Promise.reject(error)
})
//添加响应拦截器
instance.interceptors.response.use((response: AxiosResponse) => {
return response
}, async (error: AxiosError) => {
if (error.response?.status === 400) {
AppStorage.setOrCreate("ifRefresh", true)
promptAction.showToast({
message: JSON.stringify(error.response.data),
duration: 1000
})
} else if (error.response?.status === 401) {
const resData = await sendRequest<IStandardBackInfo<string>, null>({
url: '/v1_0/authorizations',
method: 'put'
})
AppStorage.set("userToken", resData.data.data["token"])
AppStorage.setOrCreate("ifRefresh", false)
}
return Promise.reject(error)
})
//T响应类型,D提交类型
export function sendRequest<T = null, D = null>(config?: AxiosRequestConfig<D>) {
return instance<null, AxiosResponse<T, null>, D>(config)
}
更多关于HarmonyOS 鸿蒙Next axios封装的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对“HarmonyOS 鸿蒙Next axios封装”的问题,以下是专业且简洁的回答:
在HarmonyOS鸿蒙系统中进行axios封装,主要涉及到网络请求的封装与管理。axios是一个基于Promise的HTTP客户端,常用于浏览器和node.js环境中发送异步HTTP请求。在鸿蒙系统中,虽然原生并不直接支持axios,但你可以通过引入JavaScript运行环境(如JerkScript或其他兼容JavaScript的框架)来实现axios的使用。
封装axios时,你可以创建一个axios实例,并配置基础URL、超时时间、请求头等参数。然后,根据业务需求封装不同的HTTP方法(如get、post、put、delete等),并在每个方法中处理请求和响应的拦截器,以实现统一的错误处理、数据格式化等功能。
此外,考虑到鸿蒙系统的多设备兼容性,你还需要确保封装的axios能够在不同设备(如手机、平板、智慧屏等)上正常运行,并处理可能出现的跨设备兼容性问题。
如果在进行axios封装时遇到具体问题,如请求失败、数据格式不正确等,可以检查网络配置、请求参数和响应数据处理逻辑是否正确。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html