http.ts 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. import { _decorator, Component, Node, sys, url } from 'cc';
  2. import { config } from './config';
  3. import { tools } from './tools';
  4. import { userDataManager } from './manager/userDataManager';
  5. import { SdkUtil } from './sdkUtil';
  6. const { ccclass, property } = _decorator;
  7. @ccclass('http')
  8. export class http {
  9. public static domain = config.debug?"https://tstzcapi.hainanmlwl.com":"https://zcapi.hainanmlwl.com"
  10. public static static_domain = config.debug?"https://tstzcapi.hainanmlwl.com":"https://zaoca.oss-cn-beijing.aliyuncs.com"
  11. public static statistics_domain = config.debug?"":""
  12. public static post(url,opt, call_back,method:string='POST') {
  13. var xml = new XMLHttpRequest()
  14. let request_url = http.domain+url
  15. xml.open(method, request_url)
  16. xml.setRequestHeader('Content-Type', 'application/json');
  17. if(userDataManager.user_data!=null){
  18. xml.setRequestHeader('token',userDataManager.user_data.token);
  19. }
  20. if(opt==null){
  21. xml.send();
  22. }else{
  23. xml.send(JSON.stringify(opt));
  24. }
  25. // xml.send(opt);
  26. var array: String[] = ['loadstart', 'abort', 'error', 'load', 'loadend', 'timeout'];
  27. array.forEach(function (eventName) {
  28. xml[('on' + eventName) as 'onloadstart' | 'onabort' | 'onerror' | 'onload' | 'onloadend' | 'ontimeout'] = function () {
  29. // var str = '\nEvent : ' + eventName;
  30. var lstr = ""
  31. if (eventName === 'timeout') {
  32. lstr += '(timeout)';
  33. }
  34. else if (eventName === 'loadend') {
  35. lstr += '...loadend!';
  36. } else if (eventName === 'onerror') {
  37. }
  38. };
  39. });
  40. // Special event
  41. xml.onreadystatechange = function () {
  42. if (xml.readyState === 4 && xml.status >= 200) {
  43. call_back(null, xml.responseText);
  44. } else if (xml.status === 404) {
  45. call_back('404 page not found!', null);
  46. }
  47. };
  48. }
  49. public static get(url, call_back) {
  50. var xml = new XMLHttpRequest()
  51. let request_url = http.static_domain+url
  52. xml.open('GET', request_url)
  53. xml.setRequestHeader('Content-Type', 'application/json');
  54. xml.send();
  55. var array: String[] = ['loadstart', 'abort', 'error', 'load', 'loadend', 'timeout'];
  56. array.forEach(function (eventName) {
  57. xml[('on' + eventName) as 'onloadstart' | 'onabort' | 'onerror' | 'onload' | 'onloadend' | 'ontimeout'] = function () {
  58. // var str = '\nEvent : ' + eventName;
  59. var lstr = ""
  60. if (eventName === 'timeout') {
  61. lstr += '(timeout)';
  62. }
  63. else if (eventName === 'loadend') {
  64. lstr += '...loadend!';
  65. } else if (eventName === 'onerror') {
  66. }
  67. };
  68. });
  69. // Special event
  70. xml.onreadystatechange = function () {
  71. if (xml.readyState === 4 && xml.status >= 200) {
  72. call_back(null, xml.responseText);
  73. } else if (xml.status === 404) {
  74. call_back('404 page not found!', null);
  75. }
  76. };
  77. }
  78. public static uploadFile(url, filePath, formData, progress_call_back, call_back) {
  79. let success_cb = ((res)=>{
  80. // console.log(`uploadFile调用成功 ${res.data}`);
  81. if (res.statusCode === 200) {
  82. call_back(null,res.data)
  83. } else {
  84. call_back(res.statusCode,null)
  85. }
  86. })
  87. let fail_cb = ((err)=>{
  88. // console.log(`tt_uploadFile调用失败${err}`);
  89. call_back(err,null)
  90. })
  91. let progress_cb =((res)=>{
  92. // console.log('progress=',res.progress)
  93. if(progress_call_back) { progress_call_back(res.progress) }
  94. })
  95. let upload_url = http.domain + url
  96. let name = 'file'
  97. switch (tools.platform) {
  98. case config.Platform.TT:
  99. let task_tt = tt.uploadFile({
  100. url: upload_url,
  101. filePath: filePath,
  102. name: name,
  103. formData: formData,
  104. success(res) { success_cb(res) },
  105. fail(err) { fail_cb(err) },
  106. })
  107. task_tt.onProgressUpdate((res) => { progress_cb(res) });
  108. break;
  109. case config.Platform.WX:
  110. let task_wx = wx.uploadFile({
  111. url: upload_url,
  112. filePath: filePath,
  113. name: name,
  114. formData: formData,
  115. success(res) { success_cb(res) },
  116. fail(err) { fail_cb(err) },
  117. });
  118. task_wx.onProgressUpdate((res) => { progress_cb(res) });
  119. break;
  120. case config.Platform.KS:
  121. let task_ks = ks.uploadFile({
  122. url: upload_url,
  123. filePath: filePath,
  124. name: name,
  125. formData: formData,
  126. success(res) { success_cb(res) },
  127. fail(err) { fail_cb(err) },
  128. });
  129. task_ks.onProgressUpdate((res) => { progress_cb(res) });
  130. break;
  131. default:
  132. break;
  133. }
  134. // var xml = new XMLHttpRequest()
  135. // let request_url = http.domain+url
  136. // console.log('request_url=',request_url)
  137. // xml.open('POST', request_url, true)
  138. // xml.setRequestHeader('Content-Type', 'multipart/form-data');
  139. // if(userDataManager.user_data!=null){
  140. // xml.setRequestHeader('token',userDataManager.user_data.token);
  141. // }
  142. // //创建一个FormData对象来处理文件上传
  143. // let formData = new FormData()
  144. // formData.append("file", filePath)
  145. // //发送请求
  146. // xml.send(formData)
  147. // // 监听上传进度事件
  148. // xml.upload.onprogress = function(event) {
  149. // if (event.lengthComputable) {
  150. // var percentComplete = (event.loaded / event.total) * 100;
  151. // console.log(Math.round(percentComplete) + "% uploaded");
  152. // }
  153. // };
  154. // // 监听请求完成事件
  155. // xml.onload = function() {
  156. // if (xml.status === 200) {
  157. // console.log("File uploaded successfully");
  158. // } else {
  159. // console.log("Upload failed with status: " + xml.status);
  160. // }
  161. // }
  162. // // 监听错误事件
  163. // xml.onerror = function() {
  164. // console.log("Network error occurred");
  165. // };
  166. // // Special event
  167. // xml.onreadystatechange = function () {
  168. // console.log('xml.readyState=',xml.readyState,' xml.status=',xml.status)
  169. // if (xml.readyState === 4 && xml.status >= 200) {
  170. // call_back(null, xml.responseText);
  171. // } else if (xml.status === 404) {
  172. // call_back('404 page not found!', null);
  173. // }
  174. // }
  175. }
  176. }