123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- export default class HttpManager {
- static singleInstance: HttpManager = null;
- static getInstance(): HttpManager {
- if (HttpManager.singleInstance == null) {
- HttpManager.singleInstance = new HttpManager();
- }
- return HttpManager.singleInstance;
- }
- get(url, path, params, callback) {
- var xhr = cc.loader.getXMLHttpRequest();
- xhr.timeout = 5000;
- var requestURL = url + path;
- if (params) {
- requestURL = requestURL + "?" + params;
- }
-
- xhr.open("GET",requestURL, true);
- if (cc.sys.isNative){
- xhr.setRequestHeader("Accept", "text/html");
- xhr.setRequestHeader("Accept-Charset", "utf-8");
- xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
- }
- xhr.onreadystatechange = function() {
- if(xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)){
- console.log("http res("+ xhr.responseText.length + "):" + xhr.responseText);
- try {
- var ret = xhr.responseText;
- if(callback !== null){
- callback(null, ret);
- }
- return;
- } catch (e) {
- callback(e, null);
- }
- }
- else {
- callback(xhr.readyState + ":" + xhr.status, null);
- }
- };
-
- xhr.send();
- return xhr;
- }
- post(url, path, params, body, callback) {
- var xhr = cc.loader.getXMLHttpRequest();
- xhr.timeout = 5000;
- var requestURL = url + path;
- if (params) {
- requestURL = requestURL + "?" + params;
- }
- xhr.open("POST",requestURL, true);
- if (cc.sys.isNative){
- xhr.setRequestHeader("Accept", "text/html");
- xhr.setRequestHeader("Accept-Charset", "utf-8");
- xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
- }
- if (body) {
- xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- }
-
- xhr.onreadystatechange = function() {
- if(xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)){
- try {
- var ret = xhr.responseText;
- if(callback !== null){
- callback(null, ret);
- }
- return;
- } catch (e) {
- callback(e, null);
- }
- }
- else {
- callback(xhr.readyState + ":" + xhr.status, null);
- }
- };
- if (body) {
- xhr.send(body);
- }
- return xhr;
- }
- download(url, path, params, callback) {
- var xhr = cc.loader.getXMLHttpRequest();
- xhr.timeout = 5000;
- var requestURL = url + path;
- if (params) {
- requestURL = requestURL + "?" + params;
- }
- xhr.responseType = "arraybuffer";
- xhr.open("GET",requestURL, true);
- if (cc.sys.isNative){
- xhr.setRequestHeader("Accept", "text/html");
- xhr.setRequestHeader("Accept-Charset", "utf-8");
- xhr.setRequestHeader("Accept-Encoding", "gzip,deflate");
- }
- xhr.onreadystatechange = function() {
- if(xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)){
- var buffer = xhr.response;
- var dataview = new DataView(buffer);
- var ints = new Uint8Array(buffer.byteLength);
- for (var i = 0; i < ints.length; i++) {
- ints[i] = dataview.getUint8(i);
- }
- callback(null, ints);
- }
- else {
- callback(xhr.readyState + ":" + xhr.status, null);
- }
- };
- xhr.send();
- return xhr;
- }
- }
|