本文由qinning199原创,转载请注明:http://www.cocos2dx.net/post/216
研究了一下cocos2d-js的http网络请求,很简单
1、get请求,代码如下
var xhr = cc.loader.getXMLHttpRequest(); var statusGetLabel = new cc.LabelTTF("Status:","Thonburi",18); this.addChild(statusGetLabel,1); statusGetLabel.x = winSize.width / 2; statusGetLabel.y = winSize.height - 100; statusGetLabel.setString("Status: Send Get Request to httpbin.org"); //set arguments with <URL>?xxx=xxx&yyy=yyy xhr.open("GET","http://httpbin.org/get?show_env=1",true); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) { var httpStatus = xhr.statusText; var response = xhr.responseText.substring(0,100) + "..."; var responseLabel = new cc.LabelTTF("GET Response (100 chars): \n" + response,16); that.addChild(responseLabel,1); responseLabel.anchorX = 0; responseLabel.anchorY = 1; responseLabel.textAlign = cc.TEXT_ALIGNMENT_LEFT; responseLabel.x = 10; responseLabel.y = winSize.height / 2; statusGetLabel.setString("Status: Got GET response! " + httpStatus); } }; xhr.send();
2、post请求,代码如下
var xhr = cc.loader.getXMLHttpRequest(); var statusPostLabel = new cc.LabelTTF("Status:",18); this.addChild(statusPostLabel,1); statusPostLabel.x = winSize.width / 2; statusPostLabel.y = winSize.height - 140; statusPostLabel.setString("Status: Send Post Request to httpbin.org with plain text"); xhr.open("POST","http://httpbin.org/post"); //set Content-type "text/plain;charset=UTF-8" to post plain text xhr.setRequestHeader("Content-Type","text/plain;charset=UTF-8"); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) { var httpStatus = xhr.statusText; var response = xhr.responseText.substring(0,100) + "..."; var responseLabel = new cc.LabelTTF("POST Response (100 chars): \n" + response,1); responseLabel.anchorX = 0; responseLabel.anchorY = 1; responseLabel.textAlign = cc.TEXT_ALIGNMENT_LEFT; responseLabel.x = winSize.width / 10 * 3; responseLabel.y = winSize.height / 2; statusPostLabel.setString("Status: Got POST response! " + httpStatus); } }; xhr.send("plain text message");