温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么封装微信小程序http拦截器

发布时间:2022-04-12 17:05:23 来源:亿速云 阅读:269 作者:iii 栏目:编程语言

这篇文章主要介绍“怎么封装微信小程序http拦截器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么封装微信小程序http拦截器”文章能帮助大家解决问题。

第一步:创建一个request.js文件

第二步:确定http、upload和websocket前缀

怎么封装微信小程序http拦截器

第三步:封装wx.request

怎么封装微信小程序http拦截器

在请求发出前处理http地址、请求头和参数、在响应后解析返回值并做基本的逻辑判断,重点是使用Promise对象。

第四步:导出模块

怎么封装微信小程序http拦截器

第五步:使用request

const Request = require("/utils/request");//导入模块 Request.post("/api/xcxWxLogin", { //调用方法      code: res.code,      encryptedData: resp.encryptedData,      iv: resp.iv,      shareId: share.shareId || "",      salesmanId: share.salesmanId || "",      source: share.source || "" }).then(res => { //成功回调   //todo }).catch(err => {}); //异常回调

第六步:拦截器完整代码

const apiHttp = "https://*****.com"; const socketHttp = "wss://*****.com/wss"; function fun(url, method, data, header) { data = data || {}; header = header || {}; let sessionId = wx.getStorageSync("UserSessionId"); if (sessionId) { if (!header || !header["SESSIONID"]) {  header["SESSIONID"] = sessionId; } } wx.showNavigationBarLoading(); let promise = new Promise(function(resolve, reject) { wx.request({  url: apiHttp + url,  header: header,  data: data,  method: method,  success: function(res) {   if (typeof res.data === "object") {    if (res.data.status) {     if (res.data.status === -200) {      wx.showToast({       title: "为确保能向您提供最准确的服务,请退出应用重新授权",       icon: "none"      });      reject("请重新登录");     } else if (res.data.status === -201) {      wx.showToast({       title: res.data.msg,       icon: "none"      });      setTimeout(function() {       wx.navigateTo({        url: "/pages/user/supplement/supplement"       });      }, 1000);      reject(res.data.msg);     }    }   }   resolve(res);  },  fail: reject,  complete: function() {   wx.hideNavigationBarLoading();  } }); }); return promise; } function upload(url, name, filePath) { let header = {}; let sessionId = wx.getStorageSync("UserSessionId"); //从缓存中拿该信息 if (sessionId) { if (!header || !header["SESSIONID"]) {  header["SESSIONID"] = sessionId; //添加到请求头中 } } wx.showNavigationBarLoading(); let promise = new Promise(function(resolve, reject) { wx.uploadFile({  url: apiHttp + url,  filePath: filePath,  name: name,  header: header,  success: function(res) {   resolve(res);  },  fail: reject,  complete: function() {   wx.hideNavigationBarLoading();  } }); }); return promise; } module.exports = { apiHttp: apiHttp, socketHttp: socketHttp, "get": function(url, data, header) { return fun(url, "GET", data, header); }, "post": function(url, data, header) { return fun(url, "POST", data, header); }, upload: function(url, name, filePath) { return upload(url, name, filePath); } };

关于“怎么封装微信小程序http拦截器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI