您的位置:首页 > 理论基础 > 计算机网络

cocos2dx 网络连接

2015-07-29 23:28 519 查看
XMLHttpRequest

----------------------------------------------
-- 数据转换,将请求数据 由table转化为string
function dataParse(data)

if type(data) ~= "table" then
return nil
end
local tmp = {}
for key, value in pairs(data) do
table.insert(tmp, key .. "=" .. value)
end
local newData = ""
for i = 1, #tmp do
newData = newData .. tostring(tmp[i])
if i < #tmp then
newData = newData .. "&"
end
end
-- cclog("data:" .. newData)
return newData
end

---------------------------------
-- POST 型,发送数据
function sendInfoToSync()

local url = "www.baidu.com" 				-- 网址
local xhr = cc.XMLHttpRequest:new()
xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_STRING
xhr.timeout = 30			-- 判断连接超时时间,秒

-- 响应函数
local onReadyFunc = function()
if xhr.status ~= -1 then		-- 连接成功
local result = xhr.response 			-- string
local cjson = require("cjson")
local info = cjson.decode(result)		-- json 解析成table
else  		-- 连接失败
end
end
xhr:registerScriptHandler(onReadyFunc)
xhr:open("POST",url)
local data = {}
data.account = 1
local newData = dataParse(data)
xhr:send(newData)
end

--------------------------------------
-- GET型,获取数据
function loadInfoFromSync()

local url = "www.baidu.com"
local xhr = cc.XMLHttpRequest:new()
xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_JSON
xhr.timeout = 30
local onReadyFunc = function()
if xhr.status ~= -1 then		-- 连接成功
local result = xhr.response 			-- string
local cjson = require("cjson")
local info = cjson.decode(result)		-- json 解析成table
else  		-- 连接失败
end
end
xhr:registerScriptHandler(onReadyFunc)
local data = {}
data.account = 1
local newData = url .. "?" .. dataParse(data)
xhr:open("GET",newData)
xhr:send()
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: