// #ifdef APP-PLUS import appUpgrade from '@/common/appUpgrade.js'; // #endif import config from "@/common/config.js" let http = { 'setBaseUrl': (url) => { if (url.charAt(url.length - 1) === "/") { url = url.substr(0, url.length - 1) } http.baseUrl = url; }, 'header': {}, 'beforeRequestFilter': (config) => { return config }, 'beforeResponseFilter': (res) => { return res }, 'afterResponseFilter': (successResult) => {}, 'get': get, 'delete': deletE, 'post': post, 'put': put, 'request': request, 'uploadFile': uploadFile, 'downloadFile': downloadFile } function init(con) { //url let url = http.baseUrl; if (url && con.url && !con.url.match(/^(http|https):\/\/([\w.]+\/?)\S*$/)) { if (con.url.charAt(0) !== "/") { con.url = "/" + con.url; } con.url = url.concat(con.url); } //header if (http.header != undefined && http.header != null) { if (!con.header) { con.header = http.header; } else { Object.keys(http.header).forEach(function(key) { con.header[key] = http.header[key] }); } } } function request(con) { init(con); let config = { //判断是否有以下属性没有就赋予默认值 url: con.url ? con.url : http.baseUrl, data: con.data, header: con.header, method: con.method ? con.method : 'GET', dataType: con.dataType ? con.dataType : 'json', responseType: con.responseType ? con.responseType : 'text', success: con.success ? (res) => { http.afterResponseFilter(con.success(http.beforeResponseFilter(res))); } : null, fail: con.fail ? (res) => { con.fail(res); } : () => { uni.showToast({ title: '请检查网络', icon: 'none' }); uni.hideLoading(); }, complete: con.complete ? (res) => { con.complete(res); } : (res) => { if (!res.statusCode) { uni.showToast({ title: '请求失败', icon: 'none' }); uni.hideLoading(); } if (res.statusCode !== 200) { uni.showToast({ title: '请求失败', icon: 'none' }); uni.hideLoading(); } if (res.statusCode == 200) { if (res.data.code == 401) { //登录过期 // uni.showToast({ // title: '登录已过期,请重新登录', // icon: 'none' // }); // uni.hideLoading(); // uni.reLaunch({ // url:'/pages/wxindex/index' // }) } // #ifdef APP-PLUS if (res.data.code == 601) { //强制拉起升级 request({ url: '/common/getVersion', success: (res) => { appUpgrade.init({ titleText: '版本更新'+res.data.data.version, packageUrl:res.data.data.url, content: res.data.data.content, forceUpgrade:true }); appUpgrade.show(); } }); } // #endif else if (res.data.code && res.data.code !== 200) { //这里code是自己的服务器正确标识 uni.showToast({ title: res.data.msg, icon: 'none', position:'top' }); } uni.hideLoading(); } uni.stopPullDownRefresh(); } } const AUTH_TOKEN = ["Authorization","device","version"]; for (var i = 0; i < AUTH_TOKEN.length; i++) { if (uni.getStorageSync(AUTH_TOKEN[i])) { http.header[AUTH_TOKEN[i]] = uni.getStorageSync(AUTH_TOKEN[i]); } } return uni.request(http.beforeRequestFilter(config)); } function get(url, con, success) { let conf = {}; if (con && typeof con == 'function') { if (success && typeof success == 'object') { conf = success; } conf.success = con } else { if (con && typeof con == 'object') { conf = con; } conf.success = success; } if (url) { conf.url = url } conf.method = "GET"; return request(conf); } function deletE(url, con, success) { let conf = {}; if (con && typeof con == 'function') { if (success && typeof success == 'object') { conf = success; } conf.success = con } else { if (con && typeof con == 'object') { conf = con; } conf.success = success; } if (url) { conf.url = url } conf.method = "DELETE"; return request(conf); } function post(url, data, con, success) { let conf = {}; if (con && typeof con == 'function') { if (success && typeof success == 'object') { conf = success } conf.success = con; } else { if (con && typeof con == 'object') { conf = con; } conf.success = success; } if (url) { conf.url = url } if (data) { conf.data = data } conf.method = "POST"; return request(conf); } function put(url, data, con, success) { let conf = {}; if (con && typeof con == 'function') { if (success && typeof success == 'object') { conf = success } conf.success = con; } else { if (con && typeof con == 'object') { conf = con; } conf.success = success; } if (url) { conf.url = url } if (data) { conf.data = data } conf.method = "PUT"; return request(conf); } function uploadFile(con) { init(con); console.log("========================") console.log("========================") console.log("========================") console.error(con.url) console.error(con.url) console.error(con.url) console.error(con.url) let config = { url: con.url ? con.url : http.baseUrl, files: con.files, filesType: con.filesType, filePath: con.filePath, name: con.name, header: con.header, formData: con.formData, success: con.success ? (res) => { http.afterResponseFilter(con.success(http.beforeResponseFilter(res))); } : null, fail: con.fail ? (res) => { con.fail(res); } : null, complete: con.complete ? (res) => { con.complete(res); } : null } const AUTH_TOKEN = ["Authorization","device","version"]; for (var i = 0; i < AUTH_TOKEN.length; i++) { if (uni.getStorageSync(AUTH_TOKEN[i])) { http.header[AUTH_TOKEN[i]] = uni.getStorageSync(AUTH_TOKEN[i]); } } return uni.uploadFile(http.beforeRequestFilter(config)); } function downloadFile(con) { init(con); let config = { url: con.url ? con.url : http.baseUrl, header: con.header, success: con.success ? (res) => { http.afterResponseFilter(con.success(http.beforeResponseFilter(res))); } : null, fail: con.fail ? (res) => { con.fail(res); } : null, complete: con.complete ? (res) => { con.complete(res); } : null } return uni.downloadFile(http.beforeRequestFilter(config)); } // 使用 //POST // this.$http.request({ // url: '/xxx', // method: 'POST', // data:JSON.stringify({id:111}), // success: (res) => { // if (res.data.code == 200) { // // } // } // }); //GET // this.$http.request({ // url: '/xxx?id=111', // success: (res) => { // if (res.data.code == 200) { // // } // } // }); // 地址及配置 http.setBaseUrl(config.getBaseApiUrl()); //在线服务器 // http.setBaseUrl("http://192.168.0.105:8080"); //离线服务器 export default http