import { requestEncode, responseDecode } from "./ProtoMap"; import { BASEURL } from "../API/Constant"; let token = ""; // 登录 function login() { uni.login({ provider: 'weixin', success: function (loginRes) { const data = { server: 2, servant: 1001, version: 3, data: { // phone:Buffer.from('3246541321'), phone: '17688768233', code: loginRes.code, verifyCode: 'asdasd', nickname: "4", head_url: "6", system_type: 1, } } request(data).then((res) => { console.log(res); res.token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA'; token = res.token; // 缓存token uni.setStorage({ key: 'token', data: res.token, }); }); } }); // return res }; // 获取token function getToken() { try { const value = uni.getStorageSync('token'); if (value) { token = value; } else { login(); } } catch (e) { login(); } } // getToken(); login(); const defaultHeader = { "X-Requested-With": "XMLHttpRequest", "Content-Type": "application/x-protobuf", 'Token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA' } /** * POST请求 * @param {*} request * @returns */ function request(data, type = "POST", header = defaultHeader) { return new Promise((resolve, reject) => { uni.request({ url: BASEURL, header: header, method: type, timeout: 15000, dataType: 'protobuf', responseType: 'arraybuffer', data: requestEncode(data) }).then((res) => { res.map((response) => { if (response && response.statusCode === 200) { try { let enc = new TextDecoder('utf-8') let resJson = JSON.parse(enc.decode(new Uint8Array(response.data))) //转化成json对象 if (resJson.code === 0) { let arrayBuffer = uni.base64ToArrayBuffer(resJson.data) let data = responseDecode(arrayBuffer); let code = 0; let msg = "success"; if (typeof data.errInfo !== 'undefined') { console.log(data.errInfo) code = data.errInfo.errorMessage if (typeof data.errInfo.errorMessage === 'string') { msg = data.errInfo.errorMessage } else { msg = Buffer.from(data.errInfo.errorMessage).toString() } if (typeof code === 'undefined' && msg === 'ok') { code = 0 } }; resolve({ data, code, msg }); } else { resolve({ code: resJson.code, msg: resJson.info }); } } catch (e) { resolve({ code: -1, msg: e.toString(), }); } return; }; // 没有数据或者返回错误 // resolve({ // code: 1006, // msg: "数据错误", // }); }) }).catch((error) => { let [err, res] = error; reject(err); }) }) } module.exports = request;