import { session, } from "@/comm/utils.js" export default { common: { data: {}, // header: { // "Content-Type": "application/json;charset=UTF-8" // }, method: "GET", dataType: "json" }, addLog(item) { const list = session.getValue("request_log") || [] const res = typeof item.data == 'string' ? item.data : JSON.stringify(item.data) if (res.length > 100 * 1024) { const maxData = session.getValue("request_log_max_data") || {} const key = `data${new Date().getTime()}` maxData[key] = item.data item.data_key = key delete item.data session.setValue("request_log_max_data", maxData) } list.unshift(item) if (list.length > 1000) { const oldItem = list.shift() if (oldItem.data_key) { const maxData = session.getValue("request_log_max_data") || {} delete maxData[oldItem.data_key] session.setValue("request_log_max_data", maxData) } } session.setValue("request_log", list) }, request(options = {}) { options.data = options.data || this.common.data; options.header = options.header || { "Content-Type": "application/json;charset=UTF-8" }; options.method = options.method || this.common.method; options.dataType = options.dataType || this.common.dataType; console.log("url", options.url, options.data) return new Promise((resolve, reject) => { const app = getApp() uni.request({ url: options.url, data: options.data, // header: options.header, method: options.method, dataType: options.dataType, success: (result) => { console.log("result", result) const now = new Date() const date = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}` if (result.statusCode != 200) { this.addLog({ date, method: `${options.method || ""}`, url: options.url, param: options.data, statusCode: result.statusCode, data: "" }) if (result.statusCode == 404) { return reject({ msg: "地址不对,请检查该地址:" + options.url }); } return reject({ msg: "访问失败,状态码:" + result.statusCode }) } this.addLog({ date, method: `${options.method || ""}`, url: options.url, param: options.data, statusCode: result.statusCode, data: result.data }) var ret = result.data if (typeof ret == 'string') { try { try { try { ret = JSON.parse(ret.replace(/\\"/g, '"')); } catch (ex) { ret = JSON.parse(ret.replace(/\\/g, '\\\\')) } } catch (ex) { ret = JSON.parse(ret.replace(/\\"/g, "'").replace( /[\r\n]/g, '
').replace(/[\t]/g, ' ')); } } catch (ex) { return reject({ msg: '将【json string】转换为【json object】失败' }) } } if (ret.code == 0) { resolve(ret.data); } else { reject({ msg: ret.msg || "" }); } }, fail: (err) => { console.log("fail", err) const now = new Date() const date = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}` this.addLog({ date, method: `${options.method || ""}`, url: options.url, param: options.data, statusCode: -1, data: err }) return reject(err); } }) }) }, }