【链接】XMLHttpRequest https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
function MainScene:onCreate() -- add background image -- display.newSprite("bg1.png") -- :move(display.center) -- :addTo(self) --注册按钮 (get) self.register_Btn = ccui.Button:create(); self.register_Btn:setTitleText("help"); self.register_Btn:setTitleFontSize(20) self.register_Btn:setPosition(cc.p(display.cx,display.cy+100)); self:addChild(self.register_Btn); self.register_Btn:addClickEventListener(function ( ) print("注册!") local xhr = cc.XMLHttpRequest:new() --创建一个请求 --[[ 数据返回格式 xhr.responseType cc.XMLHTTPREQUEST_RESPONSE_STRING = 0 -- 返回字符串类型 cc.XMLHTTPREQUEST_RESPONSE_ARRAY_BUFFER = 1 -- 返回字节数组类型 cc.XMLHTTPREQUEST_RESPONSE_BLOB = 2 -- 返回二进制大对象类型 cc.XMLHTTPREQUEST_RESPONSE_DOCUMENT = 3 -- 返回文档对象类型 cc.XMLHTTPREQUEST_RESPONSE_JSON = 4 -- 返回JSON数据类型 ]] xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_STRING --设置返回数据格式为字符串 local req = "http://123.56.50.222:8050/[email protected]&password=881122&phoneIdentity=1998273" --请求地址 xhr:open("GET", req) --设置请求方式 GET 或者 POST local function onReadyStateChange() --请求响应函数 --[[ readyState : 请求五中状态 0 UNSENT (未打开) open()方法还未被调用. 1 OPENED (未发送) send()方法还未被调用. 2 HEADERS_RECEIVED (已获取响应头) send()方法已经被调用, 响应头和响应状态已经返回. 3 LOADING (正在下载响应体) 响应体下载中; responseText中已经获取了部分数据. 4 DONE (请求完成) 整个请求过程已经完毕. status: 该请求的响应状态码 (例如, 状态码200 表示一个成功的请求).只读. statusText: 该请求的响应状态信息,包含一个状态码和原因短语 (例如 "200 OK"). 只读. ]] if xhr.readyState == 4 and (xhr.status >= 200 and xhr.status < 207) then --请求状态已完并且请求已成功 local statusString = "Http Status Code:"..xhr.statusText print("请求返回状态码"..statusString) local s = xhr.response --获得服务端返回的内容 dump(s) print("****************************") local str = json.decode(s) for k,v in pairs(str) do print(k,v) end end end xhr:registerScriptHandler(onReadyStateChange) --注册请求响应函数 xhr:send() --最后发送请求 end)
--登录按钮 (post) self.DengLu_Btn = ccui.Button:create(); self.DengLu_Btn:setTitleText("play"); self.DengLu_Btn:setPosition(cc.p(display.cx,display.cy)); self:addChild(self.DengLu_Btn); self.DengLu_Btn:addClickEventListener(function ( ) print("登录") local xhr = cc.XMLHttpRequest:new() --创建一个请求 xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_STRING --设置返回数据格式为字符串 local req = "http://123.56.50.222:8050/userLogin"; --请求地址 local postData = "{email:[email protected],password:881122,phoneIdentity:1998273}";--post 传递的数据 xhr:open("POST", req) --设置请求方式 POST 或者 GET local function onReadyStateChange() --请求响应函数 if xhr.readyState == 4 and (xhr.status >= 200 and xhr.status < 207) then --请求状态已完并且请求已成功 local statusString = "Http Status Code:"..xhr.statusText print("请求返回状态码"..statusString) local s = xhr.response --获得返回的内容 print("****************************") local str = json.decode(s) for k,v in pairs(str) do print(k,v) end end end xhr:registerScriptHandler(onReadyStateChange) --注册请求响应函数 xhr:send(postData) --最后发送请求 end)
-- websocket 测试 (post) -- self.wsSendText = cc.WebSocket:create("ws://127.0.0.1:3000"); -- local function wsSendTextOpen( strData ) -- print("Websocket 打开实例"); -- end -- local function wsSendTextMessage( strData ) -- local info = "接收服务端数据 : " .. strData -- print(info) -- end -- local function wsSendTextClose( strData ) -- print("Websocket 实例关闭"); -- end -- local function wsSendTextError ( strData ) -- print("Websocket 发生错误") -- end -- self.wsSendText:registerScriptHandler(wsSendTextOpen,cc.WEBSOCKET_OPEN); -- self.wsSendText:registerScriptHandler(wsSendTextMessage,cc.WEBSOCKET_MESSAGE); -- self.wsSendText:registerScriptHandler(wsSendTextClose,cc.WEBSOCKET_CLOSE); -- self.wsSendText:registerScriptHandler(wsSendTextError,cc.WEBSOCKET_ERROR); -- self.webTest_Btn = ccui.Button:create("play.png"); -- self.webTest_Btn:setPosition(cc.p(display.cx,display.cy-100)); -- self:addChild(self.webTest_Btn); -- self.webTest_Btn:addClickEventListener(function ( ) -- print("websocket test!"); -- if cc.WEBSOCKET_STATE_OPEN == self.wsSendText:getReadyState() then -- print("send text ws is waiting") -- self.wsSendText:sendString("Hello Websocket") -- else -- local warningStr = "Websocket 没有准备好!"; -- print(warningStr); -- end -- end) end
return MainScene
|
请发表评论