import http from 'uni-http-interface';
// 公共配置项,三种api通用
http.config = {
baseUrl: 'http://baidu.com', // 基础路径
timeout: 6000, // 超时时间
}
// 对应接口配置项
http.requestConfig {
// uni.request(OBJECT)的 OBJECT 参数: https://uniapp.dcloud.io/api/request/request.html#request
...
}
http.uploadFileConfig {
// uni.uploadFile(OBJECT)的 OBJECT 参数: https://uniapp.dcloud.io/api/request/network-file.html#uploadfile
...
}
http.downloadFileConfig {
// uni.downloadFile(OBJECT)的 OBJECT 参数: https://uniapp.dcloud.io/api/request/network-file.html#downloadfile
...
}
http.interceptor.invoke = config => {
// 请求拦截前触发
return config
}
http.interceptor.success = res => {
// 请求成功回调拦截
// 成功回调
return Promise.resolve(response.data)
// 走失败回调
return Promise.reject(response)
}
http.interceptor.fail = err => {
// 请求失败回调拦截
// 走失败回调
return Promise.reject(response)
}
http.interceptor.complete = res => {
// 请求完成回调拦截
// 成功回调
return Promise.resolve(response.data)
// 走失败回调
return Promise.reject(response)
}
// 已封装:get,post,put,delete,upload,download请求,如需其他请求自行在下方封装
export default http
import http from '@/utils/http'
// 接口请求拦截
let interceptor = {
invoke: config => {
// 请求拦截前触发,同:http.interceptor.invoke,该配置存在会最终取该配置的参数
return config
},
success: response => {
// 请求拦截前触发,同:http.interceptor.success,该配置存在会优先执行
// 请求成功回调拦截
// 成功回调
return Promise.resolve(response.data)
// 走失败回调
return Promise.reject(response)
},
fail: error => {
// 请求拦截前触发,同:http.interceptor.fail,该配置存在会优先执行
// 走失败回调
return Promise.reject(error)
},
complete: response => {
// 请求拦截前触发,同:http.interceptor.complete,该配置存在会优先执行
// 请求成功回调拦截
// 成功回调
return Promise.resolve(response.data)
// 走失败回调
return Promise.reject(response)
}
}
// 请求的参数
let data = {
...,
}
// OBJECT参数
let option = {
...,
}
// 发出get请求
http.get('/user/userInfo', data, option, interceptor)
// 发出post请求
http.post('/user/login', data option, interceptor)
// 发出put请求
http.put('/user/userInfo', data option, interceptor)
// 发出delete请求
http.delete('/user/userInfo', data option, interceptor)
// 上传文件请求
http.upload('/upload/file', {
file, // 上传文件字段,三选一即可:https://uniapp.dcloud.io/api/request/network-file.html#uploadfile
...option // option参数
}, interceptor)
// 下载文件
http.download('/download/file', option, interceptor)