1.首先要导入包
import axios, { InternalAxiosRequestConfig, AxiosError, AxiosResponse } from '@ohos/axios'
import { promptAction } from '@kit.ArkUI'
2.实例化axios,给出基地址
// 创建axios实例,并设置基础URL和请求超时时间
const instance = axios.create({
baseURL: '基地址',
timeout: 5000
})
3.设置请求拦截器
// 配置请求拦截器,可以在此处添加全局的请求头或验证token等操作
instance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
// 对config进行必要的修改后返回
return config
}, (error: AxiosError) => {
// 请求错误处理
return Promise.reject(error)
})
4.设置响应拦截器,对响应回来的错误作处理
// 配置响应拦截器,可以在此处统一处理响应错误等
instance.interceptors.response.use((response: AxiosResponse) => {
// 对response进行必要的处理后返回
return response
}, (error: AxiosError) => {
// 响应错误处理
return Promise.reject(error)
})
5.定义一个HTTP类,调用 request 方法
class Http {
/**
* 发起HTTP请求的方法
*
* config - Axios请求配置对象
* Res - 响应数据类型,默认为任意类型
* Req - 请求参数类型,默认为Object类型
*
* AxiosRequestConfig<Req> - 配置对象中的data属性类型为Req
*/
request<Res, Req = Object>(config: AxiosRequestConfig<Req>) {
return instance.request<null, Res, Req>(config)
}
}
// 创建Http实例并导出
export const http = new Http()