最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

封装微信小程序http过程解析

来源:动视网 责编:小采 时间:2020-11-27 21:52:22
文档

封装微信小程序http过程解析

封装微信小程序http过程解析:前言 微信小程序是数据驱动的应用,开发技术和vue、react和angular等mv*技术类似。在vue下可以用vue-resource、axios等模块进行http请求,但是在微信小程序上,http请求只支持wx.request(OBJECT),所以我们需要对wx.request进行封装,实现htt
推荐度:
导读封装微信小程序http过程解析:前言 微信小程序是数据驱动的应用,开发技术和vue、react和angular等mv*技术类似。在vue下可以用vue-resource、axios等模块进行http请求,但是在微信小程序上,http请求只支持wx.request(OBJECT),所以我们需要对wx.request进行封装,实现htt


第四步:导出模块

第五步:使用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过程解析

封装微信小程序http过程解析:前言 微信小程序是数据驱动的应用,开发技术和vue、react和angular等mv*技术类似。在vue下可以用vue-resource、axios等模块进行http请求,但是在微信小程序上,http请求只支持wx.request(OBJECT),所以我们需要对wx.request进行封装,实现htt
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top