zoukankan      html  css  js  c++  java
  • cocos2d-x lua 使用http(下载图片, POST JSON)

    cocos2d-x lua 使用http(下载图片, POST JSON)

    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),存放用户的临时数据,方便返回时使用。
  • 相关阅读:
    L378 Scientifically, this is the best age for you to lead
    L376 Unleashing Your True Potential
    L375 爱情和事业平衡
    L374 企鹅
    2019-05-12 L373 英国要被淹
    2019-05-10 Business Meeting-Meeting Notice
    子类能不能继承父类的成员变量
    Java 重写(Override)与重载(Overload)
    java 类访问权限
    IS-A 和 HAS-A
  • 原文地址:https://www.cnblogs.com/songcf/p/4556780.html
Copyright © 2011-2022 走看看