123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- 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;
|