一个简单的小程序请求封装
主要是加一个加载动画啥的 ,不用每一次请求的 时候写很多请求头参数啥的,统一使用,比较方便,写的比较拉胯。支付宝这边请求是my.request啥的如果需要换成微信小程序的话吧对应改成微信小程序的API即可。
var base_url = "https://blog.csdn.net/";
/**
* 封装网球请求接口
* @param {String} url 请求地址
* @param {Object} data 请求数据
* @param {String} method 请求方式
*/
const request = (url, data = null, method = "POST") => {
my.showLoading({
content: "加载中..."
// delay: 1000,
});
const _url = `${base_url}${url}`;
// const _token = getApp().globalData.token
// GET请求方式x-www-form-urlencoded, 其他请求方式json
const _header = {
"Content-Type": `application/${method === "GET" ? "x-www-form-urlencoded" : "json"
}`
// 'Authorization': `Bearer ${_token}`
};
return new Promise((resolve, reject) => {
my.request({
url: _url,
method: method,
data: data,
header: _header,
success: res => {
my.hideLoading();
if (res.status === 200 && res.data.status.code == 200) {
// console.log(res, "api");
resolve(res.data);
} else {
// console.log(res,'apierr')
if (res.data.error == null) {
my.showToast({
content: "接口错误"
// duration: 2000
});
} else {
my.showToast({
content: res.data.error
// duration: 2000
});
}
resolve(null);
}
},
fail: err => {
my.hideLoading();
my.showToast({
content: err.data.error
// duration: 2000
});
reject(err);
},
complete: res => {
// 加载完成
}
});
});
};
export default {
base_url,
request
};
在页面中使用
import api from "../../../utils/api";
api.request("api/test", {
itemId: query.id // 事项标识
}).then(res => {
this.setData({ custom: res.custom });
});
|