下载
ohpm install @ohos/axios
封装
- 导入axios
import axios from '@ohos/axios'
- 实例化,通用配置
const instance=axios.create({
// 基地址
baseURL:"",
timeout:5000
})
- 请求拦截器
instance.interceptors.request.use((config:InternalAxiosRequestConfig)=>{
return config
},(err:Error)=>{
return Promise.reject(err)
})
- 响应拦截器
instance.interceptors.response.use((response:AxiosResponse)=>{
return response
},(err:AxiosError)=>{
return Promise.reject(err)
})
- 规范化
export interface HttpResponse<T> {
code: string
msg: string
result: T
}
export type ResponseType<T> = AxiosResponse<HttpResponse<T>>
export class RequestAxios {
static get<T>(url: string, params?: object): Promise<ResponseType<T>> {
return instance.get<null, ResponseType<T>>(url, { params })
}
static post<T>(url: string, data?: object): Promise<ResponseType<T>> {
return instance.post<null, ResponseType<T>>(url, data)
}
static delete<T>(url: string, data?: object): Promise<ResponseType<T>> {
return instance.delete<null, ResponseType<T>>(url, data)
}
static put<T>(url: string, data?: object): Promise<ResponseType<T>> {
return instance.put<null, ResponseType<T>>(url, data)
}
}
- 导出
export * from './apis/Request'
- 使用
RequestAxios.get<参数>('接口')