http 封装
import { config } from './config.js';
import { md5 } from './md5.js';
// 提示信息
const tips = {
1:"抱歉,出现了一个错误",
2:"appkey 无效",
404:"不存在"
}
// promise 请求
class HTTP
{
// 方式1:子类型访问的配置参数
constructor() {
this.apiBaseUrl = config.api_base_url
}
// 方式2:子类型访问的配置参数
getApiBaseUrl() {
return config.api_base_url
}
// 获取元素上绑定的值
getDataSet(event, key) {
return event.currentTarget.dataset[key]
}
// ES6 可以以对象的方式传参
request({url, data={}, method="GET"}) {
return new Promise((resolve, reject)=>{
this._request(url, resolve, reject, data, method)
})
}
/**
* 封装请求
*/
_request(url, resolve, reject, data={}, method="GET") {
let timestamp = Date.now();
let sign = md5(timestamp + config.app_key).toUpperCase()
wx.request({
url: config.api_base_url + url,
method: method,
data: data,
header:{
'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
// 'content-type': "application/json",
"sign": sign,
'timestamp': timestamp,
'token': wx.getStorageSync('token')
},
success: (res)=>{
let code = res.statusCode.toString();
if (code.charAt(0) == '2') {
// 成功返回
resolve(res.data)
}
else {
this.showError(code)
// 失败返回
reject()
}
},
fail: (res)=> {
// 失败返回
reject()
}
})
}
/**
* 错误提示
*/
showError(errCode) {
errCode = errCode ? errCode : 1
const tip = tips[errCode]
wx.showToast({
title: tip ? tip : tips[1],
icon: 'none',
duration: 3000
})
}
}
export { HTTP }