时间:2021-05-25
前言
这篇文章主要针对一些初学者,有写的不好的地方,还请大家多多谅解!
在utils文件夹里面新建两个js文件,一个是api.js、一个就是requtil.js
api.js
这个文件主要api接口,废话不多说直接上代码了
const request = require('requtil.js')const Apis = { 'login': '/devicecenter/auth/weChtLoin', 'bindUser': '/devicecenter/user/userBindinOpenId', 'genQrCode': '/devicecenter/user/getUserRcode', 'getDeviceList': '/minipro/group/getDl', // 获取设备列表 'getDeviceAdd': '/minipro/group/addDl', // 添加设备 'getDeviceDtl': '/minipro/group/delDl', // 删除设备}const user = { login: function(data) { request.get(Apis.login, data) }, getSecret: function(data) { request.get(Apis.getSecret, data) },}module.exports = { ...user}requtil.js
把微信的wx.request请求进行分开封装
const globalsetting = require('globalsetting.js')const baseURL = globalsetting.serverconst util = require('util.js')const ignoreUrls = [ '/auth/weChatLogin', '/user/userBindingOpenId', '/user/getSecret', '/user/getOpenId']var token = ''function post(url, args) { args = _prev(url, 'POST', args) wx.request(args)}function get(url, args) { args = _prev(url, 'GET', args) wx.request(args)}function put(url, args) { args = _prev(url, 'PUT', args) wx.request(args)}function _delete(url, args) { args = _prev(url, 'DELETE', args) wx.request(args)}function _prev(url, method, args) { // console.log('123',args) args = args || {} args.url = url if(args.urlparam) args.url += '/' + args.urlparam var params = parseParams(args) params.method = method params.success = success(params.success) params.fail = fail(params.fail) setToken(params) return params}// 处理接口是否需要添加header.token方法function setToken(params) { if (!ignoreUrls.some(url => params.url.match(new RegExp(url)))) { if (!params.header) params.header = { token: getToken() } else params.header.token = getToken() } else { // console.log('ignore: ', params.url) }}// 处理接口参数方法function parseParams(args) { var params = Object.assign(args) if (!(params.url.startsWith('https://') || params.url.startsWith('http://'))) params.url = baseURL + params.url if(params.param) { if (params.url.indexOf('?') > -1 && params.url.indexOf('?') != params.url.length - 1) { params.url += '&' } else if(params.url.indexOf('?') == params.url.length -1) { // 无任何操作 } else { params.url += '?' } var buf = '' for(var name in params.param) { let val = params.param[name]; buf += name + '=' + encodeURI(typeof val == 'object' ? JSON.stringify(val) : val) + '&' } params.url += buf } return params}// 接口返回成功方法function success(callback) { return function(rs) { var status = rs.statusCode if (status == 405) { util.errorMsg('请求失败405:\n服务器返回失败') } else if(status == 404) { util.errorMsg('请求失败404:\n找不到接口') } if(callback) callback(rs.data) }}function fail(callback) { return function(rs) { console.log(rs) if(callback) callback(rs) }}// 获取接口请求回来的tokenfunction _setToken(tk) { token = tk wx.setStorageSync('token', token)}页面怎么调用
在全局的app.js里面
import api from './utils/apis.js';App({ api: api,})index页面
通过getApp()获取api接口,自定义一个函数里面用到了promise方法获取数据,然后在getDevList调用getChatRecord方法,就可以数据赋值
const APP = getApp()getDevList(e){ this.getChatRecord().then(res => { wx.hideLoading({ success: (res) => {}, }); if(res.id == '-1') { utils.errorMsg(res.message); }else { console.log(res) } })}// 设备列表请求接口getChatRecord (params = {}) { return new Promise((resolve, reject) => { APP.api.getDeviceList({ success: res => { resolve(res) } }) })},后期我会做一个demo出来,放到github上面,这样你们看起来更直观一些
总结
到此这篇关于全网小程序接口请求封装实例的文章就介绍到这了,更多相关全网小程序接口请求封装内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信小程序request接口的封装实例代码小程序request接口的封装(本质上是对request回调函数再次回调)module.exports.getData
遇到的坑:例如在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端;当我们使用POST方
最近在学习Vue,今天尝试了使用axios模拟本地网络请求。使用的过程中发现接口请求一直404,后来发现在当期的Vue-cli构建的最新的项目中,接口请求应该这
本文实例讲述了微信小程序封装的HTTP请求。分享给大家供大家参考,具体如下:微信小程序里自己封装了请求的函数,但几乎每个页面都要用到,所以为什么更方便的调用,再
接口文档模块名:用户注册接口请求URL:http://api.nnzhp.cn/api/user/user_reg请求方式:POST参数:参数名必选类型说明us