封装API接口
import {http} from '../utils/request.js'
export function login(code){
return http({
url:'/wx/getSession',
method: 'GET',
data:{
code
}
})
}
调用接口
import {login,test,phoneMessage,updateAvatar} from '../../api/user.js'
function userLogin(){
login(code.value).then(r=>{
toekn.value=r.data.token
uni.setStorageSync('Authorization',toekn.value)
})
}
export function updateAvatar(uri){
return uni.uploadFile({
url:'/wx/uploadAvatar',
filePath:uri,
name:'file',
headers: {
'Content-Type': 'application/json; charset=UTF-8',
},
})
}
请求拦截器
const config={
invoke(options){
if(!options.url.startsWith('http')){
options.url=baseUrl+options.url
}
options.timeout=1000*5
options.header = {
...options.header,
};
const token = uni.getStorageSync('Authorization');
if(token){
options.header.Authorization=token
}
}
}
uni.addInterceptor('request',config)
响应拦截器
const http = (options) => {
return new Promise((resolve, reject) => {
uni.request({
...options,
success(res) {
resolve(res.data)
},
fail(err) {
uni.showToast({
icon: "none",
title: "网络错误, 换个网络试试",
});
reject(err);
},
complete() {
uni.hideLoading();
},
});
});
};
文件上传
uni.addInterceptor("uploadFile", config);