Http.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/Script/Http.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, 'a2af0lfNIRPj6O7NvL1gMR1', 'Http');
  13. // Script/Http.ts
  14. "use strict";
  15. Object.defineProperty(exports, "__esModule", { value: true });
  16. var Global_1 = require("./Global");
  17. var URL = "https://www.19960909.com";
  18. // 39.98.43.215:9000;
  19. // let URL = "http://192.168.3.137:9001"
  20. var Http = /** @class */ (function () {
  21. function Http() {
  22. }
  23. Http.sendRequest = function (path, data, handler, extraUrl) {
  24. return;
  25. var xhr = new XMLHttpRequest();
  26. xhr.timeout = 5000;
  27. var str = "?msg=" + JSON.stringify(data);
  28. // for(var k in data){
  29. // if(str != "?"){
  30. // str += "&";
  31. // }
  32. // str += k + "=" + data[k];
  33. // }
  34. if (extraUrl == null) {
  35. extraUrl = Http.url;
  36. }
  37. var requestURL = extraUrl + path + encodeURI(str);
  38. console.log("RequestURL:" + requestURL);
  39. xhr.open("GET", requestURL, true);
  40. if (cc.sys.isNative) {
  41. xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
  42. xhr.setRequestHeader("contentType", "text/html;charset=UTF-8");
  43. }
  44. xhr.onreadystatechange = function () {
  45. if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
  46. Global_1.default.instance.NetStatus = true;
  47. //console.log("http res("+ xhr.responseText.length + "):" + xhr.responseText);
  48. try {
  49. console.log("------------------1");
  50. var ret = JSON.parse(xhr.responseText);
  51. if (handler !== null) {
  52. handler(ret);
  53. } /* code */
  54. }
  55. catch (e) {
  56. console.log("err:" + e);
  57. //handler(null);
  58. }
  59. finally {
  60. // if(cc.vv && cc.vv.wc){
  61. // // cc.vv.wc.hide();
  62. // }
  63. }
  64. }
  65. else {
  66. //Global.instance.NetStatus = false;
  67. }
  68. };
  69. // if(cc.vv && cc.vv.wc){
  70. // //cc.vv.wc.show();
  71. // }
  72. try {
  73. xhr.send();
  74. }
  75. catch (error) {
  76. Global_1.default.instance.NetStatus = false;
  77. //console.log(" Global.instance.NetStatus "+Global.instance.NetStatus);
  78. console.log("HTTP " + error);
  79. }
  80. return xhr;
  81. };
  82. ;
  83. Http.sendPost = function (path, data, handler, extraUrl) {
  84. return;
  85. var xhr = new XMLHttpRequest();
  86. xhr.timeout = 5000;
  87. xhr.open("POST", Http.url + path, true);
  88. // xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//缺少这句,后台无法获取参数
  89. xhr.setRequestHeader("Content-type", "application/json");
  90. xhr.onreadystatechange = function () {
  91. //console.info(xhr.getResponseHeader('content-type')==='application/json');
  92. if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) {
  93. Global_1.default.instance.NetStatus = true;
  94. //console.log("http res("+ xhr.responseText.length + "):" + xhr.responseText);
  95. try {
  96. console.log("------------------2");
  97. var ret = JSON.parse(xhr.responseText);
  98. if (handler !== null) {
  99. handler(ret);
  100. } /* code */
  101. }
  102. catch (e) {
  103. console.log("err:" + e);
  104. //handler(null);
  105. }
  106. finally {
  107. // if(cc.vv && cc.vv.wc){
  108. // // cc.vv.wc.hide();
  109. // }
  110. }
  111. }
  112. else {
  113. }
  114. };
  115. //console.info(JSON.stringify(data));
  116. try {
  117. xhr.send("a=1&a=2");
  118. }
  119. catch (error) {
  120. Global_1.default.instance.NetStatus = false;
  121. }
  122. return xhr;
  123. };
  124. ;
  125. // let origin:number = 0;
  126. // static sessionId:number;
  127. // static userId:number;
  128. // static master_url:number;
  129. Http.url = URL;
  130. return Http;
  131. }());
  132. exports.default = Http;
  133. cc._RF.pop();
  134. }
  135. if (nodeEnv) {
  136. __define(__module.exports, __require, __module);
  137. }
  138. else {
  139. __quick_compile_project__.registerModuleFunc(__filename, function () {
  140. __define(__module.exports, __require, __module);
  141. });
  142. }
  143. })();
  144. //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QyxPQUFPLEtBQUssRUFBRTtZQUNaLGdCQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDckM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFBQSxDQUFDO0lBL0dGLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUNyQixRQUFHLEdBQVUsR0FBRyxDQUFDO0lBMkg1QixXQUFDO0NBaElELEFBZ0lDLElBQUE7a0JBaElvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEdsb2JhbCBmcm9tIFwiLi9HbG9iYWxcIjtcclxuXHJcbmxldCBVUkwgPSBcImh0dHBzOi8vd3d3LjE5OTYwOTA5LmNvbVwiO1xyXG4vLyAzOS45OC40My4yMTU6OTAwMDtcclxuLy8gbGV0IFVSTCA9IFwiaHR0cDovLzE5Mi4xNjguMy4xMzc6OTAwMVwiXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIdHRwIHtcclxuICAgIC8vIGxldCBvcmlnaW46bnVtYmVyID0gMDtcclxuICAgIC8vIHN0YXRpYyBzZXNzaW9uSWQ6bnVtYmVyO1xyXG4gICAgLy8gc3RhdGljIHVzZXJJZDpudW1iZXI7XHJcbiAgICAvLyBzdGF0aWMgbWFzdGVyX3VybDpudW1iZXI7XHJcbiAgICBzdGF0aWMgdXJsOnN0cmluZyA9IFVSTDtcclxuICAgIHN0YXRpYyBzZW5kUmVxdWVzdChwYXRoOnN0cmluZyxkYXRhOm9iamVjdCxoYW5kbGVyOkZ1bmN0aW9uLGV4dHJhVXJsPzpzdHJpbmcpIHtcclxuXHRcdFxyXG5cdFx0cmV0dXJuO1xyXG4gICAgICAgIGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKVxyXG4gICAgICAgIHhoci50aW1lb3V0ID0gNTAwMDtcclxuICAgICAgICB2YXIgc3RyID0gXCI/bXNnPVwiICsgSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgICAgICAgLy8gZm9yKHZhciBrIGluIGRhdGEpe1xyXG4gICAgICAgIC8vICAgICBpZihzdHIgIT0gXCI/XCIpe1xyXG4gICAgICAgIC8vICAgICAgICAgc3RyICs9IFwiJlwiO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gICAgIHN0ciArPSBrICsgXCI9XCIgKyBkYXRhW2tdO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZihleHRyYVVybCA9PSBudWxsKXtcclxuICAgICAgICAgICAgZXh0cmFVcmwgPSBIdHRwLnVybDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHJlcXVlc3RVUkwgPSBleHRyYVVybCArIHBhdGggKyBlbmNvZGVVUkkoc3RyKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlJlcXVlc3RVUkw6XCIgKyByZXF1ZXN0VVJMKTtcclxuICAgICAgICB4aHIub3BlbihcIkdFVFwiLHJlcXVlc3RVUkwsIHRydWUpO1xyXG4gICAgICAgIGlmIChjYy5zeXMuaXNOYXRpdmUpe1xyXG4gICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkFjY2VwdC1FbmNvZGluZ1wiLFwiZ3ppcCxkZWZsYXRlXCIpO1xyXG4gICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcImNvbnRlbnRUeXBlXCIsXCJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOFwiICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgaWYoeGhyLnJlYWR5U3RhdGUgPT09IDQgJiYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApKXtcclxuICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5OZXRTdGF0dXMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImh0dHAgcmVzKFwiKyB4aHIucmVzcG9uc2VUZXh0Lmxlbmd0aCArIFwiKTpcIiArIHhoci5yZXNwb25zZVRleHQpO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIi0tLS0tLS0tLS0tLS0tLS0tLTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJldCA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoaGFuZGxlciAhPT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIocmV0KTtcclxuICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgLyogY29kZSAqL1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyOlwiICsgZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZmluYWxseXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZihjYy52diAmJiBjYy52di53Yyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gLy8gICAgICAgY2MudnYud2MuaGlkZSgpOyAgICBcclxuICAgICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vR2xvYmFsLmluc3RhbmNlLk5ldFN0YXR1cyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBpZihjYy52diAmJiBjYy52di53Yyl7XHJcbiAgICAgICAgLy8gICAgIC8vY2MudnYud2Muc2hvdygpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB4aHIuc2VuZCgpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5OZXRTdGF0dXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIiBHbG9iYWwuaW5zdGFuY2UuTmV0U3RhdHVzIFwiK0dsb2JhbC5pbnN0YW5jZS5OZXRTdGF0dXMpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhUVFAgICAgXCIrZXJyb3IpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHhocjtcclxuICAgIH07XHJcblxyXG4gICAgc3RhdGljIHNlbmRQb3N0KHBhdGg6c3RyaW5nLGRhdGE6b2JqZWN0LGhhbmRsZXI6RnVuY3Rpb24sZXh0cmFVcmw/OnN0cmluZykge1xyXG5cdFx0cmV0dXJuO1xyXG4gICAgICAgIGxldCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKVxyXG4gICAgICAgIHhoci50aW1lb3V0ID0gNTAwMDtcclxuICAgICAgIFxyXG4gICAgICAgIHhoci5vcGVuKFwiUE9TVFwiLCBIdHRwLnVybCArIHBhdGgsIHRydWUpO1xyXG5cclxuICAgICAgICAvLyB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtcIik7Ly/nvLrlsJHov5nlj6XvvIzlkI7lj7Dml6Dms5Xojrflj5blj4LmlbBcclxuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtdHlwZVwiLCBcImFwcGxpY2F0aW9uL2pzb25cIik7XHJcbiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUuaW5mbyh4aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpPT09J2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICAgICAgaWYoeGhyLnJlYWR5U3RhdGUgPT09IDQgJiYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApKXtcclxuICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5OZXRTdGF0dXMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImh0dHAgcmVzKFwiKyB4aHIucmVzcG9uc2VUZXh0Lmxlbmd0aCArIFwiKTpcIiArIHhoci5yZXNwb25zZVRleHQpO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCItLS0tLS0tLS0tLS0tLS0tLS0yXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXQgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGhhbmRsZXIgIT09IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyKHJldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvZGUgKi9cclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycjpcIiArIGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlcihudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpbmFsbHl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYoY2MudnYgJiYgY2MudnYud2Mpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIC8vICAgICAgIGNjLnZ2LndjLmhpZGUoKTsgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICBcclxuICAgICAgICAvL2NvbnNvbGUuaW5mbyhKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgeGhyLnNlbmQoXCJhPTEmYT0yXCIpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5OZXRTdGF0dXMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHhocjtcclxuICAgIH07XHJcbiAgICBcclxuLy8g5Lit5paH5Lmx56CB6Kej5YazXHJcbi8vIGlmIChyZXF1ZXN0LmdldE1ldGhvZCgpLmVxdWFsc0lnbm9yZUNhc2UoXCJQT1NUXCIpKVxyXG4vLyB7XHJcbi8vIFx0cmVxdWVzdC5zZXRDaGFyYWN0ZXJFbmNvZGluZyhcIlVURi04XCIpO1xyXG4vLyBcdFN5c3RlbS5vdXQucHJpbnRsbihyZXF1ZXN0LmdldFBhcmFtZXRlcihcInZhbHVlXCIpKTtcclxuLy8gfVxyXG4vLyAvLyDlpITnkIZHRVTor7fmsYJcclxuLy8gZWxzZSBpZiAocmVxdWVzdC5nZXRNZXRob2QoKS5lcXVhbHNJZ25vcmVDYXNlKFwiR0VUXCIpKVxyXG4vLyB7XHJcbi8vIFx0U3RyaW5nIHRtcCA9IHJlcXVlc3QuZ2V0UGFyYW1ldGVyKFwidmFsdWVcIik7XHJcbi8vIFx0U3RyaW5nIGEgPSBuZXcgU3RyaW5nKHRtcC5nZXRCeXRlcyhcIklTTy04ODU5LTFcIikgLCBcIlVURi04XCIpO1xyXG4vLyBcdFN5c3RlbS5vdXQucHJpbnRsbihhKTtcclxuLy8gfVxyXG5cclxufVxyXG4iXX0=