cocos creator使用http

Date.prototype.Format = function (fmt) {

    var o = {

        "M+": this.getMonth() + 1, //月份 

        "d+": this.getDate(), //日 

        "h+": this.getHours(), //小时 

        "m+": this.getMinutes(), //分 

        "s+": this.getSeconds(), //秒 

        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 

        "S": this.getMilliseconds() //毫秒 

    };

    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

    for (var k in o)

        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

    return fmt;

}

 

var HTTP = cc.Class({

    extends: cc.Component,

    statics: {

        url: URL,

        sendRequest: function (path, data, handler, extraUrl) {

            var xhr = cc.loader.getXMLHttpRequest();

            xhr.timeout = 20000;

            var str = "?";

            for (var k in data) {

                if (str != "?") {

                    str += "&";

                }

                str += k + "=" + data[k];

            }

            if (extraUrl == null) {

                extraUrl = HTTP.url;

            }

            var requestURL = extraUrl + path + encodeURI(str);

            console.log("RequestURL:" + requestURL);

            xhr.open("GET", requestURL, true);

            if (cc.sys.isNative) {

                xhr.setRequestHeader("Accept-Encoding", "gzip,deflate", "text/html;charset=UTF-8");

            }

 

            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 = JSON.parse(xhr.responseText);

                        if (handler !== null) {

                            handler(ret);

                        }                        /* code */

                    } catch (e) {

                        cc.log("err:" + e);

                        //handler(null);

                    }

                    finally {

                       //你想干啥

                    }

                }

            };

            xhr.send();

            return xhr;

        },

    },

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos Creator中提供了一个名为cc.loader的模块,它可以用于进行http请求。 使用cc.loader进行http请求的基本步骤如下: 1. 引入cc.loader模块 ``` var loader = require('cc.loader'); ``` 2. 发送http请求 ``` loader.load(url, function (err, data) { if (err) { cc.error(err); return; } // 处理返回的数据 }); ``` 在上面的代码中,url表示要请求的地址。第二个参数是一个回调函数,当请求成功时会调用这个函数,并将返回的数据作为参数传入。 3. 发送带参数的http请求 如果需要发送带参数的http请求,可以使用cc.loader中的loadJson方法。例如: ``` var params = { username: 'abc', password: 'xyz' }; loader.loadJson(url, params, function (err, data) { if (err) { cc.error(err); return; } // 处理返回的数据 }); ``` 在上面的代码中,params是一个对象,表示要发送的参数。loadJson方法会将这个对象转换成json格式,并将其作为请求的body发送给服务器。 4. 发送带headers的http请求 如果需要发送带headers的http请求,可以使用cc.loader中的load方法,并指定headers参数。例如: ``` var headers = { 'Authorization': 'Bearer xxxxx', 'Content-Type': 'application/json' }; loader.load(url, { headers: headers }, function (err, data) { if (err) { cc.error(err); return; } // 处理返回的数据 }); ``` 在上面的代码中,headers是一个对象,表示要发送的headers。load方法会将这些headers添加到请求中,并发送给服务器。 5. 取消http请求 如果需要取消一个正在进行的http请求,可以调用cc.loader中的release方法,并传入正在进行的请求的url。例如: ``` var xhr = loader.load(url, function (err, data) { if (err) { cc.error(err); return; } // 处理返回的数据 }); // 取消请求 loader.release(xhr.url); ``` 在上面的代码中,xhr是一个XMLHttpRequest对象,表示正在进行的http请求。release方法会停止这个请求,并释放相关资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值