cocos2dx-lua http请求下载图片,使用XMLHttpRequest类
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类的更多相关文章
- cocos2d-x lua 使用http(下载图片, POST JSON)
cocos2d-x lua 使用http(下载图片, POST JSON) version: cocos2d-x 3.6 1.使用http post json与服务器交互 require(" ...
- 网络请求以及网络请求下载图片的工具类 android开发java工具类
package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...
- Android开发之java代码工具类。判断当前网络是否连接并请求下载图片
package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...
- cocos2dx lua 绑定之一:自动绑定自定义类中的函数
cococs2dx 3.13.1 + vs2013 + win10 1.首先定义C++类Student 在cocos2d-x\cocos文件夹下新建一个user_define的文件夹放置两个文件. 注 ...
- 【转】 COCOS2D-X之使用CURL下载图片的一个简单Demo
#include"curl/curl.h" #pragma comment(lib,"libcurl_imp.lib") bool HelloWorld::i ...
- cocos2dx lua 绑定之二:手动绑定自定义类中的函数
cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...
- java假设模拟请求重新启动路由器(网络爬虫经常使用),还有java怎样下载图片
我们假设在公司或家里使用网络爬虫去抓取自己索要的一些数据的时候,经常对方的站点有defence机制,会给你的http请求返回500错误,仅仅要是同样IP就请求不到数据,这时候我们仅仅能去重新启动路由器 ...
- iOS 通过网络请求获取图片的下载歌曲
1.导入代理<NSURLConnectionDataDelegate> @interface ViewController ()<NSURLConnectionDataDelegat ...
- 利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
转自:http://www.himigame.com/iphone-cocos2dx/1354.html 首先说明一个问题: 为什么要在线更新资源和脚本文件!? 对于此问题,那要说的太多了,简单概括, ...
随机推荐
- Transformer
参考资料: [ERT大火却不懂Transformer?读这一篇就够了] https://zhuanlan.zhihu.com/p/54356280 (中文版) http://jalammar.gith ...
- ionic3隐藏子页面的tabs和配置返回按钮
在app.modlues.ts文件中修改 imports: [ BrowserModule, IonicModule.forRoot(MyApp, { tabsHideOnSubPages: 'tru ...
- System.IO.Pipelines: .NET上高性能IO
System.IO.Pipelines是一个新的库,旨在简化在.NET中执行高性能IO的过程.它是一个依赖.NET Standard的库,适用于所有.NET实现. Pipelines诞生于.NET C ...
- jmetter的http请求设置
1.设置 cookie 2.设置header 3.login 4.post请求 5.get请求
- bzoj 2002 : [Hnoi2010]Bounce 弹飞绵羊 (LCT)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2002 题面: 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: ...
- found 12 vulnerabilities (7 moderate, 5 high) run `npm audit fix` to fix them, or `npm audit` for details
npm 安装包之后,如果出现类似下面的信息 found 12 vulnerabilities (7 moderate, 5 high) run `npm audit fix` to fix them, ...
- Python基础学习笔记4-28(持续更新)
Python学习笔记 第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信.需要操作系统进行协调 ...
- thinkphp5: 循环输出表格,并固定表格单元宽度(过长省略号)
html: <table class="table table-striped" style='table-layout:fixed;'> <thead clas ...
- 通信传输利器Netty(Net is DotNetty)介绍
(先埋怨一下微软大大)我们做NET开发,十分羡慕JAVA上能有NETTY, SPRING, STRUTS, DUBBO等等优秀框架,而我们NET就只有干瞪眼,哎,无赖之前生态圈没做好,恨铁不成钢啊.不 ...
- go语言基础知识笔记(二)之数组和切片
数组和切片知识用的也是比较多,的给我们工作带来很大的便利 (一) 数组 定义:在golang中数组的长度是不可变,数组存放要求是同一种数据类型 //golang中数组定义的四种方法1.先声明,后赋值 ...