Conf:请求库替换,移除之前的flyIo,改用luch-request

This commit is contained in:
linxi
2024-10-18 14:48:22 +08:00
parent b0ac014816
commit cb6545ecd7
17 changed files with 1327 additions and 36 deletions
+67 -36
View File
@@ -1,38 +1,60 @@
import Fly from "flyio/dist/npm/wx";
import {handleLoginFailure} from "@/utils";
import {VUE_APP_API_URL} from "@/config";
import store from "@/store/index.js";
import Request from "@/utils/luch-request/index.js";
import cookie from "@/utils/store/cookie";
import { handleLoginFailure } from "@/utils";
import { VUE_APP_API_URL } from "@/config";
const fly = new Fly()
fly.config.baseURL = VUE_APP_API_URL
const http = new Request();
/* 设置全局配置 */
http.setConfig((config) => {
config.baseURL = VUE_APP_API_URL;
config.timeout = 2000;
config.method = "POST";
config.responseType = "text";
config.header = {
...config.header,
};
return config;
});
fly.interceptors.response.use(
response => {
// 定时刷新access-token
return response;
},
error => {
if (error.toString() == 'Error: Network Error') {
console.log('————————')
console.log('发送请求失败', error)
console.log('————————')
handleLoginFailure();
return Promise.reject({msg: "未登录", toLogin: true});
} else if (error.status == 401) {
console.log('————————')
console.log('登录失效 401', error)
console.log('————————')
handleLoginFailure();
return Promise.reject({msg: "未登录", toLogin: true});
} else {
uni.showToast({
title: '服务开小差了,请稍后再试',
icon: 'none',
duration: 3000
})
}
return Promise.reject(error);
// /* 请求之前拦截器 */
http.interceptors.request.use((config, cancel) => {
const token = cookie.get('login_status');
config.header = {
...config.header,
Authorization: token ? ('Bearer ' + token) : ''
}
return config;
});
// 必须使用异步函数,注意
http.interceptors.response.use(
(response) => {
return response;
},
(err) => {
if (error.toString() == "Error: Network Error") {
console.log("————————");
console.log("发送请求失败", error);
console.log("————————");
handleLoginFailure();
return Promise.reject({ msg: "未登录", toLogin: true });
} else if (error.status == 401) {
console.log("————————");
console.log("登录失效 401", error);
console.log("————————");
handleLoginFailure();
return Promise.reject({ msg: "未登录", toLogin: true });
} else {
uni.showToast({
title: "服务开小差了,请稍后再试",
icon: "none",
duration: 3000,
});
}
return Promise.reject(error);
}
);
const defaultOpt = {login: true};
@@ -51,13 +73,22 @@ function baseRequest(options) {
// 结构请求需要的参数
const {url, params, data, login, ...option} = options
console.log(params, '=====params');
console.log(params, '=====data');
console.log(option, '=======option');
let _params = {}
if(['get', 'GET'].includes(options.method)) {
_params = {
params: params
}
} else if (['post', 'POST'].includes(options.method)) {
_params = params || data
}
// 发起请求
return fly.request(url, params || data, {
...option
}).then(res => {
return http[options.method](url, _params).then(res => {
const resData = res.data || {};
if (res.status !== 200) {
if (res.statusCode !== 200) {
return Promise.reject({msg: "请求失败", res, resData});
}
if ([401, 403].indexOf(resData.status) !== -1) {
@@ -117,4 +148,4 @@ const request = ["post", "put", "patch"].reduce((request, method) => {
};
});
export default request;
export default request