import util from '../utils/util'; const islog = true export class Server { request(url,data,method,header,isDefaultGet,failMsg){ return new Promise(async (rs,rj)=>{ // const _token = uni.getStorageSync('venueData').token || ''; // if(_token)data['token'] = _token; // if(method === 'POST'&&_token)url = url + `?token=${_token}` uni.request({ url, timeout: 300000, sslVerify:false, data, method, // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT header: {...header}, // 设置请求的 header // {'custom-header': 'application/json'} success: res=>{ if(res.extension)util.updateTimeDifference(res.extension); //每次请求都更新时间差 if(islog){ console.log('islog req success---->') let weburl = getWebURL(data,url) let temp = url.split("?")[0].split("/") let postName = temp[temp.length-1] console.log("-------------------->> ["+postName+"][log]\n"+"请求 Data: \n" + JSON.stringify(data)+ "\n URL:\n"+weburl+"\n <<-------------------- ["+postName+"][log] ↑↑↑\n") } if(isDefaultGet){ if(failMsg == '')throw Error('默认回调,失败提示不能为空 key -> failMsg'); defaultGet({ url, data, res, failMsg, resolve: rs, reject: rj }); return } rs(res); }, fail: err=>{ if(islog)console.log('req fail---->',{ link: url, query: data, method: method, data: err, }) util.hideLoad(); if(typeof(err.errMsg) == 'string'&&(err.errMsg.indexOf('timeout')!=-1 || err.errMsg.indexOf('interrupted')!=-1 || err.errMsg.indexOf('请求超时')!=-1)){ util.showNone('网络超时!'); }else if(typeof(err.errMsg) == 'string'){ util.showNone(err.errMsg); }else{ util.showNone('请求数据失败!请检查当前网络状态。'); } rj(err); }, complete(result) { // if(util.debug){ util.showLog(data,url,result) // } } }) }) function defaultGet({res,failMsg,resolve,reject,url,data}){ if(res.data.code == 0){ resolve(res.data.data); }else{ util.hideLoad(); util.showNone(res.data.message || failMsg || ''); if(res.data.code==401){//用户异常 uni.showModal({ title: '提示', content: res.data.message, success: function (res) { if (res.confirm) { console.log('用户点击确定'); util.routeTo('/pages/login/index','rL') } else if (res.cancel) { console.log('用户点击取消'); } } }); } reject({url,res,data}); } } } get({url,data={},header={},isDefaultGet=true,failMsg=''}){ let params = {} header = util.resetHeader(header,url,data,params) return this.request(url,data,'GET',header,isDefaultGet,failMsg); } post({url,data={},header={},isDefaultGet=true,failMsg=''}){ let params = {} header = util.resetHeader(header,url,data,params) return this.request(url,data,'POST',header,isDefaultGet,failMsg); } // post({url,data={},header={'custom-header': 'application/json'},isDefaultGet=true,failMsg=''}){ // return this.request(url,data,'POST',header,isDefaultGet,failMsg); // } uploadFile({url,filePath,onProgressCallBack,formData={}}){ return new Promise((rs,rj)=>{ let uploadTask = wx.uploadFile({ url,filePath,formData,name:'file',success:rs,fail:rj }) uploadTask.onProgressUpdate(res=>onProgressCallBack&&onProgressCallBack(res)) }) } } function getWebURL(data,url){ let result = "" for(var i in data){ result+=`&${i}=${data[i]}` } return url+"?"+result.slice(1) } export const ox = new Server(); export default { ox, Server };