HttpFileDownLoadSimple.lua

local downloader = {}

--数据拆分,以没1024*5字节拆成一段,打包写入文件    (拆完再拼接,转成字符串)

local function getStrData(response)
local totalSize = table.getn(response)
local onePart = *
local partData = ""
local packTimes = math.floor(totalSize/onePart) print("文件大小: : " , totalSize )
--print(" -- > pack size , times : " , totalSize , packTimes)
for i=,packTimes do
local partUnPack = string.char(unpack(response,+(i-)*onePart , i*onePart) )
partData = partData..partUnPack
--print(" -- > pack new part : " , 1+(i-1)*onePart , i*onePart)
end
--print(" -- > pack end part : " , packTimes*onePart+1 , totalSize)
local endUnpack = string.char(unpack(response , packTimes*onePart+ , totalSize) )
partData = partData..endUnpack
return partData
end --下载图片
function downloader:DownLoadImage(url,saveName,callBack)
local xhr = cc.XMLHttpRequest:new()
xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_ARRAY_BUFFER
xhr:open("GET", url) --self.callBack = callBack local function onReadyStateChanged()
print("---------net--------- xhr.readyState xhr.status",xhr.readyState,xhr.status)
if xhr.readyState == and (xhr.status >= and xhr.status < ) then
print(" ---> 下载图片返回数据 : " , xhr.statusText )
local response = xhr.response
local strInfo = getStrData(response)
io.writefile("user/"..saveName, strInfo, "w+b")
--self:callback("down load ok" , saveName)
--self.
callBack(saveName)
else
print(" --- > error xhr.readyState is:", xhr.readyState, "xhr.status is: ",xhr.status)
self:callbackErr(xhr.readyState, xhr.status)
end
if xhr.status == then
print("xhr.readyState xhr.status",xhr.readyState,xhr.status)
--req.callback(code,fullFileName,req)
end xhr:unregisterScriptHandler()
end xhr:registerScriptHandler(onReadyStateChanged)
xhr:send()
end cc.exports.HttpFileDownLoadSimple = downloader return downloader

调用代码:

local list = {}
list[] = {id = ,url = "http://life.southmoney.com/tuwen/UploadFiles_6871/201809/20180925104703150.jpg"}
list[] = {id = ,url = "http://img.52z.com/upload/news/image/20180914/20180914034357_53554.jpg"} function downCallBack(name)
print(name)
end local u1 = list[]
local u2 = list[] HttpFileDownLoadSimple:DownLoadImage(u1.url,"head"..u1.id..".jpg",downCallBack)

文件下载路径:(在代码里可以改)

运行目录或项目根目录 user 文件夹

cocos2dx-lua http请求下载图片,使用XMLHttpRequest类的更多相关文章

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

    cocos2d-x lua 使用http(下载图片, POST JSON) version: cocos2d-x 3.6 1.使用http post json与服务器交互 require(" ...

  2. 网络请求以及网络请求下载图片的工具类 android开发java工具类

    package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...

  3. Android开发之java代码工具类。判断当前网络是否连接并请求下载图片

    package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...

  4. cocos2dx lua 绑定之一:自动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先定义C++类Student 在cocos2d-x\cocos文件夹下新建一个user_define的文件夹放置两个文件. 注 ...

  5. 【转】 COCOS2D-X之使用CURL下载图片的一个简单Demo

    #include"curl/curl.h" #pragma  comment(lib,"libcurl_imp.lib") bool HelloWorld::i ...

  6. cocos2dx lua 绑定之二:手动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...

  7. java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片

    我们假设在公司或家里使用网络爬虫去抓取自己索要的一些数据的时候,经常对方的站点有defence机制,会给你的http请求返回500错误,仅仅要是同样IP就请求不到数据,这时候我们仅仅能去重新启动路由器 ...

  8. iOS 通过网络请求获取图片的下载歌曲

    1.导入代理<NSURLConnectionDataDelegate> @interface ViewController ()<NSURLConnectionDataDelegat ...

  9. 利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)

    转自:http://www.himigame.com/iphone-cocos2dx/1354.html 首先说明一个问题: 为什么要在线更新资源和脚本文件!? 对于此问题,那要说的太多了,简单概括, ...

随机推荐

  1. Django3 Django 路由分发,反向解析,2.0版本的path

    urls配置像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行. 1.简 ...

  2. TCP/IP协议、UDP协议、 Http协议

    开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化 ...

  3. 关于Tomcat

    详情转自:http://blog.csdn.net/jiuqiyuliang/article/details/48094373和http://blog.csdn.net/u012934325/arti ...

  4. call(),apply(),bind()区别?

    每个函数都包含两个非继承而来的方法,apply()和call(),这两方法的用途都是在特定的作用域中调用函数,实际上等于设置函数数体内的this对象的值. apply()和call()第一个参数都一样 ...

  5. 如何解决Redis中的key过期问题

    最近我们在Redis集群中发现了一个有趣的问题.在花费大量时间进行调试和测试后,通过更改key过期,我们可以将某些集群中的Redis内存使用量减少25%. Twitter内部运行着多个缓存服务.其中一 ...

  6. AT2369 Ants on a Circle (思路)

    考虑到蚂蚁们的相对位置不会变化,而且,如果把“相遇后掉头”看作是“相遇后交换编号”的话,也可以得出来最后都有哪些位置有蚂蚁 然后,只要确定哪个位置是“1”就可以了 然后搞一个指针p代表原来第一个位置的 ...

  7. centos7升级内核至最新

    应用背景: 最近在接触docker,其对内核版本要求较高,就连目前使用的centos7.x默认内核版本为3.10.0-xxx,也是刚好满足其最低要求,故借此机会记录一下升级内核的操作步骤. 测试环境: ...

  8. Mac 设计师必备的设计绘图软件 推荐与下载

    Mac设计师必备的设计绘图软件,为广大设计师推荐一些Mac上实用且强大的软件,使用好的软件,事半功倍,设计出精美的作品. Mac上优秀的设计类软件非常多,绝对不止这几款软件,看看以下内容,希望对你有帮 ...

  9. kubernetes之监控Prometheus实战--prometheus介绍--获取监控(一)

    Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的开源监控系统 .它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016 ...

  10. 序列化 反序列化 MessagePack for C#

    阅读目录 快速序列化组件MessagePack介绍 简介 使用 快速开始 分析器 内置的支持类型 对象序列化 DataContract兼容性 序列化不可变对象(序列化构造器) 序列化回调 Union ...