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. 用redis实现分布式锁,秒杀案例(转)

    分布式锁的简单实现代码: 需要的jar包: jedis-2.9.0.jar. commons-pool2-2.4.2.jar import java.util.List; import java.ut ...

  2. 《Python从入门基础到实践》

    <Python学习——从入门到实践> 第1章 Python语言概述 1.1 从计算机到编程 1.1.1 程序语言的演变:机器语言,汇编语言,高级语言 1.1.1.1 演变原因 1.1.1. ...

  3. Java中newInstance()和new()区别

    前言: 最近在看springIOC和AOP是看见代码中很实用newInstance来实例化一个对象,之前对newInstance和new实例化对象的区别很模糊,特意在这里记录一下 一.newInsta ...

  4. vue 源代码创建tabs

    <ul class="tabs"> <li class="li-tab" v-for="(item,index) in tabsPa ...

  5. Tomcat启动报错,报找不到gdk_custom.jar

    在 tomcat/conf/context.xml 中新增如下配置 <Context> ... <JarScanner scanManifest="false"/ ...

  6. 快速沃尔什变换(FWT)及K进制异或卷积&快速子集变换(FST)讲解

    前言: $FWT$是用来处理位运算(异或.与.或)卷积的一种变换.位运算卷积是什么?形如$f[i]=\sum\limits_{j\oplus k==i}^{ }g[j]*h[k]$的卷积形式(其中$\ ...

  7. 浏览器开发者工具console

    浏览器开发者工具基本使用教程 谷歌Chrome浏览器开发者工具教程-基础功能篇 - 算命de博客 - CSDN博客 JavaScript Console 对象 | 菜鸟教程

  8. Nginx-动态添加模块

    Nginx动态添加模块 平滑升级 已经安装好的Nginx动态添加模块 说明: 已经安装好的Nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 这里已安装第三方nginx-rtmp-module ...

  9. 百度地图--JS版

    百度地图JS版本 ----选择关键字地图展示对应地址---- CSS body, html { width: %; height: %; margin: ; font-family: "微软 ...

  10. HDU4899 Hero meet devil DP套DP

    陈老师的题QwQ 原题链接 题目大意 有两个字符串\(S\)和\(T\)(都只能由'A','C','G','T'这四个字符组成),\(S\)已知\(T\)未知,还知道\(S\)的长度为\(m\).求满 ...