接口封装

简介: // 全局请求封装const BASEURL = 'https://xiche.juduodian.com/index.php/api'// export const BASE_URL = 'https://api.tjjintie.cn/'// 需要修改token,和根据实际修改请求头export default (params) => { let url = params.url; let method = params.method || "get"; let data = params.data || {}; let header = {} if (method =

// 全局请求封装
const BASEURL = 'https://xiche.juduodian.com/index.php/api'
// export const BASE_URL = 'https://api.tjjintie.cn/'

// 需要修改token,和根据实际修改请求头
export default (params) => {
let url = params.url;
let method = params.method || "get";
let data = params.data || {};
let header = {}
if (method == "post") {
header = {
'Content-Type': 'application/json',
};
}
// 获取本地token
const token = uni.getStorageSync("token");
if (token) {
// header['Authorization'] = 'Bearer ' + token;
header['token'] = token;
} else {
header['token'] = "";
}
return new Promise((resolve, reject) => {
uni.request({
url: BASEURL + url,
method: method,
header: header,
data: data,
success(response) {
const res = response
// 根据返回的状态码做出对应的操作
//获取成功
// console.log("接口返回数据", res);
if (res.statusCode == 200) {
switch (res.data.code) {
case 401:
// uni.showToast({
// title: '您还未登录,请登录',
// duration: 2000,
// })

                        uni.showModal({
                            title: "提示",
                            content: res.data.message || "您还未登录,请登录",
                            showCancel: false,
                            success(res) {
                                // 调用公告方法获取 跳转前路径,以及携带的参数
                                // let parameter = commonJs.parameterProcessing(true)
                                setTimeout(() => {
                                    uni.navigateTo({
                                        url: "/pages/login/index",
                                    })
                                }, 1000);
                            },
                        });
                        break;
                    case 1011:
                        // 登录过期
                        // uni.showModal({
                        //     title: "提示",
                        //     content: res.data.message||"您还未登录,请登录",
                        //     showCancel: false,
                        //     success(res) {
                        //         setTimeout(() => {
                        //             uni.navigateTo({
                        //                 url: "/pages/login/index",
                        //             })
                        //         }, 1000);
                        //     },
                        // });
                        // console.log("登录接口限制---")
                        uni.setStorageSync('token', '');
                        uni.setStorageSync('userInfo', {});
                        break;
                    case 1013:
                        //没有该用户 
                        // uni.showModal({
                        //     title: "提示",
                        //     content: "",
                        //     showCancel: false,
                        //     success(res) {
                        //         setTimeout(() => {
                        uni.setStorageSync('token', '');
                        uni.setStorageSync('userInfo', {});
                        // uni.navigateTo({
                        //     url: "/pages/loginTwo/index",
                        // })
                        //         }, 1000);
                        //     },
                        // });
                        break;
                    default:
                        resolve(res.data);
                        break;
                }
                // resolve(res.data);
            } else {
                // uni.clearStorageSync()
                switch (res.statusCode) {
                    case 401:
                        // uni.showModal({
                        //     title: "提示",
                        //     content: "您还未登录,请登录",
                        //     showCancel: false,
                        //     success(res) {
                        //         setTimeout(() => {
                        uni.navigateTo({
                            url: "/pages/login/index",
                        })
                        //         }, 1000);
                        //     },
                        // });
                        break;
                    case 404:
                        uni.showToast({
                            title: '请求地址不存在...',
                            duration: 2000,
                        })
                        break;
                    default:
                        uni.showToast({
                            title: '请重试...',
                            duration: 2000,
                        })
                        break;
                }
            }
        },
        fail(err) {
            console.log(err)
            if (err.errMsg.indexOf('request:fail') !== -1) {
                wx.showToast({
                    title: '网络异常',
                    icon: "error",
                    duration: 2000
                })
            } else {
                wx.showToast({
                    title: '未知异常',
                    duration: 2000
                })
            }
            reject(err);

        },
        // complete() {
        //     // 不管成功还是失败都会执行
        //     uni.hideLoading();
        //     uni.hideToast();
        // }
        complete() {
            // 不管成功还是失败都会执行
            try {
                uni.hideLoading();
            } catch {

            }
            try {
                uni.hideToast();

            } catch {}
        }
    });
}).catch((e) => {});

};

相关文章
|
4月前
|
Java 测试技术 API
Java Stream API:被低估的性能陷阱与优化技巧
Java Stream API:被低估的性能陷阱与优化技巧
422 114
【Axure教程】移动端图片管理、上传、分享原型
【Axure教程】移动端图片管理、上传、分享原型
【Axure教程】移动端图片管理、上传、分享原型
|
29天前
|
人工智能 算法 Java
Java+AI 核心指南:大模型丝滑接入与多模型统一范式
在AI深入企业应用的背景下,Java凭借稳定的工程化能力、成熟生态和存量系统兼容性,成为AI落地的关键。本文探讨Java如何高效集成AI,强调“用模型”而非“造模型”,聚焦复用现有技术栈、工程化落地与多模型统一管理,助力企业实现智能化升级。
186 0
|
4月前
|
存储 缓存 Java
我们来说一说 JVM 的内存模型
我是小假 期待与你的下一次相遇 ~
391 5
|
4月前
|
存储 缓存 算法
深入理解JVM《JVM内存区域详解 - 世界的基石》
Java代码从编译到执行需经javac编译为.class字节码,再由JVM加载运行。JVM内存分为线程私有(程序计数器、虚拟机栈、本地方法栈)和线程共享(堆、方法区)区域,其中堆是GC主战场,方法区在JDK 8+演变为使用本地内存的元空间,直接内存则用于提升NIO性能,但可能引发OOM。
|
7月前
|
人工智能 监控 安全
MCP与企业数据集成:ERP、CRM、数据仓库的统一接入
作为一名深耕企业级系统集成领域多年的技术博主"摘星",我深刻认识到现代企业面临的数据孤岛问题日益严重。随着企业数字化转型的深入推进,各类业务系统如ERP(Enterprise Resource Planning,企业资源规划)、CRM(Customer Relationship Management,客户关系管理)、数据仓库等系统的数据互联互通需求愈发迫切。传统的点对点集成方式不仅开发成本高昂,维护复杂度也呈指数级增长,更重要的是难以满足实时性和一致性要求。Anthropic推出的MCP(Model Context Protocol,模型上下文协议)为这一痛点提供了革命性的解决方案。MCP通过
479 0
|
9月前
|
网络协议 Java 大数据
【高薪程序员必看】万字长文拆解Java并发编程!(1)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
160 0
|
JavaScript API 数据处理
vue3使用pinia中的actions,需要调用接口的话
通过上述步骤,您可以在Vue 3中使用Pinia和actions来管理状态并调用API接口。Pinia的简洁设计使得状态管理和异步操作更加直观和易于维护。无论是安装配置、创建Store还是在组件中使用Store,都能轻松实现高效的状态管理和数据处理。
760 3
|
Java API 对象存储
JVM进阶调优系列(2)字节面试:JVM内存区域怎么划分,分别有什么用?
本文详细解析了JVM类加载过程的关键步骤,包括加载验证、准备、解析和初始化等阶段,并介绍了元数据区、程序计数器、虚拟机栈、堆内存及本地方法栈的作用。通过本文,读者可以深入了解JVM的工作原理,理解类加载器的类型及其机制,并掌握类加载过程中各阶段的具体操作。
|
算法 Java
JVM进阶调优系列(3)堆内存的对象什么时候被回收?
堆对象的生命周期是咋样的?什么时候被回收,回收前又如何流转?具体又是被如何回收?今天重点讲对象GC,看完这篇就全都明白了。

热门文章

最新文章