var t = require; var e = module; var i = exports; var a = (this && this.__awaiter) || function (t, n, r, l) { return new (r = r || Promise)(function (i, e) { function s(t) { try { a(l.next(t)); } catch (t) { e(t); } } function o(t) { try { a(l.throw(t)); } catch (t) { e(t); } } function a(t) { var e; t.done ? i(t.value) : ((e = t.value) instanceof r ? e : new r(function (t) { t(e); }) ).then(s, o); } a((l = l.apply(t, n || [])).next()); }); }; Object.defineProperty(i, "__esModule", {value: !0}), (i.Http = void 0), (i.Http = class { constructor() { this.httpCache = {}; } sleep(e, t) { return new Promise(t => { setTimeout(t, e); }); } getRequestUrlTail(t) { const e = []; for (var i in t) { var s = t[i]; e.push(i + "=" + encodeURIComponent(s) + "&"); } e.sort(); let o = e.join(""); return o.substring(0, o.length - 1); } requestWithTokenAndCacheAsync(t, e, i, s = 0, o = !1, a = "GET", n, r = 1e4) { var l = this.httpCache[t]; if (!o && l && Date.now() < l.reqTime + s) return l.data; r = this.requestWithTokenAsync(t, e, i, a, n, r); return s && (this.httpCache[t] = {reqTime: Date.now(), data: r}), r; } post(t, e, i = 0, s = 1e3, o = 1e4) { return a(this, void 0, void 0, function* () { do { try { return yield this.requestAsync(t, e, "POST", o); } catch (t) { cc.error(t); } } while ((s && (yield this.sleep(s)), i--)); return null; }); } requestAsync(a, n, r = "POST", l = 1e4, h) { return new Promise((i, s) => { var o = new XMLHttpRequest(); (o.timeout = l), (o.onerror = o.ontimeout = () => { s("请求超时"), (s = null); }), (o.onreadystatechange = function () { var t, e; 4 == o.readyState && ((t = 400 <= o.status || 0 == o.status), (e = o.responseText), t ? s() : i(e)); }); var t = this.getRequestUrlTail(n); if (h) for (var e in h) o.setRequestHeader(e, h[e]); "POST" === r ? (o.open(r, a, !0), o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), o.send(t)) : "POST_JSON" === r ? (o.open("POST", a, !0), o.setRequestHeader("Content-Type", "application/json"), o.send(JSON.stringify(n))) : (o.open(r, t ? a + "?" + t : a, !0), o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), o.send()); }); } requestWithTokenAsync(s, o, a, n = "POST", r, l = 1e4) { return new Promise(e => { var t, i = new XMLHttpRequest(); (i.timeout = l), (i.onerror = t => { cc.error(t), e(); }), (i.ontimeout = () => { Log.trace("请求超时!"), e(); }), (i.onreadystatechange = function () { var t; 4 == i.readyState && ((t = 400 <= i.status || 0 == i.status) ? (cc.error("请求错误", t), e()) : ((t = r ? i.response : i.responseText), e(t))); }), r && (i.responseType = r), "POST" === n ? (i.open(n, s, !0), i.setRequestHeader("Access-Token", a), o instanceof Uint8Array ? (i.setRequestHeader("Content-Type", "application/octet-stream"), i.send(o.buffer)) : (i.setRequestHeader("Content-Type", "application/json"), i.send(JSON.stringify(o)))) : (i.open(n, s, !0), (t = this.getRequestUrlTail(o)), i.open(n, t ? s + "?" + t : s, !0), i.setRequestHeader("Access-Token", a), i.send()); }); } });