• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

cocos2d-xlua使用http(下载图片,POSTJSON)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

version: cocos2d-x 3.6

1.使用http post json与服务器交互

require("src/cocos/cocos2d/json")
require("src/cocos/network/NetworkConstants")

-- post json
local xhr = cc.XMLHttpRequest:new()
xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_JSON
xhr:setRequestHeader("Content-Type", "application/json")
xhr:open("POST", "www.baidu.com")
local function loginCallback()
	print("xhr.readyState is:", xhr.readyState, "xhr.status is: ", xhr.status)
    if xhr.readyState == 4 and (xhr.status >= 200 and xhr.status < 207) then
        local response = xhr.response
        local output = json.decode(response)
        -- print
        table.foreach(output, function(i, v) print (i, v) end)
        
		-- success ...
    else
        -- fail ...
    end
end
xhr:registerScriptHandler(loginCallback)
xhr:send(sendJson)

2.使用http get下载网络图片

-- get (image)

pSprite:retain()  -- a sprite
local xhr = cc.XMLHttpRequest:new()

-- tag
xhr._urlFileName = urlFileName
xhr._urlSprite = pSprite

xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_STRING
xhr:open("GET", "http://cocos2d-x.org/s/images/img-cocos2dx.jpg")
local function onDownloadImage()
	print("xhr.readyState is:", xhr.readyState, "xhr.status is: ", xhr.status)
    if xhr.readyState == 4 and (xhr.status >= 200 and xhr.status < 207) then
        local fileData = xhr.response
        local fullFileName = cc.FileUtils:getInstance():getWritablePath() .. "/" .. xhr._urlFileName
        local file = io.open(fullFileName,"wb")
        file:write(fileData)
        file:close()
        local texture2d = cc.Director:getInstance():getTextureCache():addImage(fullFileName)
        local pSprite = xhr._urlSprite
        if texture2d then
            pSprite:setTexture(texture2d)
        end
        pSprite:release() -- be careful
    end
end
xhr:registerScriptHandler(onDownloadImage)
xhr:send()
  • 在使用xhr时,可以添加自己的数据(如:xhr._urlSprite = pSprite),存放用户的临时数据,方便返回时使用。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua语言15分钟快速入门发布时间:2022-07-22
下一篇:
cocoslua地图拖动及缩放发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap