新西兰服务器

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


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

发布时间:2022-04-12 17:05:23 来源:高防服务器网 阅读:54 作者:iii 栏目:编程语言

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

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

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

第三步:封装wx.request

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

第四步:导出模块

第五步:使用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拦截器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注高防服务器网行业资讯频道,小编每天都会为大家更新不同的知识点。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[