- 微信小程序 封装HTTP请求系列
1.util内封装的函数 function format(id, data) { var key = “XXXXXX”//这部分是xxtea加密的时候所需要的key data = JSON.stringify(data);//这部分是加密 data = base64_encode(data);//这部分是加密 data = xxtea_encrypt(data, key);//这部分是加密 return new Promise((resolve, reject) => {//这里是请求函数的封装为了做到没有一些乱七八糟的报错 这里使用了Promise wx.request({//这里是请求话不多说 url: url, data: data, header: { ‘Content-Type’: ‘application/json;charset=utf-8’ }, method: “POST”, success: function(res) {//正确的时候 res = xxtea_decrypt(res.data, key);//这里是解密 res = base64_decode(res);//这里是解密 res = JSON.parse(res);//这里是解密 resolve(res)//Promise返回成功 }, fail: function(res) {//错误的时候 reject(res);//Promise返回失败 } }) }) } 以上就是在util中封装好的请求函数 不要在意名字 提醒:莫忘记在module中声明该函数 不会声明 说明你不配用 下面是如何调用该函数并针对返回结果进行处理 util.format(url, data) .then(res => { console.log(“请求成功时调用该函数”) console.log(res); }) .catch(res => { console.log(“请求失败时调用该函数”) }) }, 以上就是函数的调用 记得声明 util 使用该函数的目的就是 ↓↓↓ 懒 减少调接口 加密解密以及一些乱七八糟的操作的时候的简化 emmmmmmmmm 就这样 诸位江湖再见 告辞
2019-04-25 - request封装
fetch.js [代码]const api = 'www.qq.com' export const Fetch = ({ url = '', data = {}, header = { "content-type": "application/json" }, method = 'GET', api = Api }) => { return new Promise((resolve, reject) => { wx.request({ url: api + url, header: header, method: method, data: data, success: res => { // 成功时的处理 if (res.data.error == 0) { resolve(res.data); } else { reject(res.data); } }, fail: err => { reject(err); } }) }) } [代码] api.js [代码]import { Fetch } from './fetch.js'; export const PostMiniList = data => { return Fetch({ url: '/post/post_mini_list.json', data: data, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded' } }) } export const GetMiniList = data => { return Fetch({ url: '/get/get_mini_list.json', data: data }) } [代码] index.js [代码]import { PostMiniList, GetMiniList } from './api.js'; PostMiniList({ a:1, b:2 }).then( res => { // 成功处理 }, err => { // 失败处理 } ) GetMiniList({ a:1, b:2 }).then( res => { // 成功处理 }, err => { // 失败处理 } ) [代码] 把所有api放在api.js里统一管理,利用promise使我们只关注返回的结果
2019-05-06