博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lua 发起的Content-Type 为application/json; charset=UTF-8的请求
阅读量:5914 次
发布时间:2019-06-19

本文共 2639 字,大约阅读时间需要 8 分钟。

前言

Lua 是一种轻量小巧的脚本语言,用标准C语言编写,并开源。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 是巴西里约热内卢天主教大学里的一个研究小组(由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成)于1993年开发。

  • 只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
  • 提供多线程(协同进程,并非操作系统所支持的线程)支持;(协同进程 内部发起http请求的时候回导致设备卡死)

多行注释推荐使用 --[=[注释内容]=]

经典问题

生产者-消费者问题现在我就使用Lua的协同程序来完成生产者-消费者这一经典问题。local newProductorfunction productor()     local i = 0     while true do          i = i + 1          send(i)     -- 将生产的物品发送给消费者     endendfunction consumer()     while true do          local i = receive()     -- 从生产者那里得到物品          print(i)     endendfunction receive()     local status, value = coroutine.resume(newProductor)     return valueendfunction send(x)     coroutine.yield(x)     -- x表示需要发送的值,值返回以后,就挂起该协同程序end-- 启动程序newProductor = coroutine.create(productor)consumer()

适用于 执行一个任务(生产),上报数据给服务端(消费),开启下一个任务的场景。

生产一次,消费一次。

获取点坐标以及对应的颜色

x,y = catchTouchPoint();           sysLog("catchTouchPoint"..x..","..y);            r,g,b = getColorRGB(x,y);            sysLog("getColor:"..r..","..g..","..b);

lua 请求不走wifi 的代理,, 只能设置设备的hosts

iPhone:/etc root# echo "192.168.2.254 alimama.fuge.cn" > /etc/hostsiPhone:/etc root# echo '127.0.0.1 localhost' >> /etc/hosts

KNHttp 的用法示例

local postTable = {};             --测试网站       local  res,code,response_body = httpPostJson(urlTable["getNew"], postTable);          --notifyMessage("res is:"..res);     sysLog("response_body "..table.concat(response_body));     sysLog(res)     sysLog("Response body:")     if type(response_body) == "table" then         sysLog(table.concat(response_body))         else         sysLog("Not a table:", type(response_body))     end          --send("timeout")     -- 将生产的物品发送给消费者,告诉后台转换超时     send(table.concat(response_body))     -- 将生产的物品发送给消费者    writePasteboard(code);

Dec 1 16:43:16 iPhone Music3f0[597] <Warning>: coroutine.status :dead

协同程序发起请求之后,立马dead

response_body[1]

decode3 = json.decode( response_body[1] )--第一个元素是string

从打印信息就可以看出

if type(response_body) == "table" then                      for k, v in pairs(response_body) do                           print( v)                           print( type(v))                        str2 = v                    end                  end

遍历打印table的两种方式

if type(response_body) == "table" then                      for k, v in pairs(response_body) do                          -- print( v)                          -- print( type(v))                        str2 = v                    end                  end
if type(response_body) == "table" then        sysLog("《"..table.concat(response_body).."》")        else        sysLog("Not a table:", type(response_body))    end

转载地址:http://uswvx.baihongyu.com/

你可能感兴趣的文章
聊聊NettyConnector的start及shutdown
查看>>
记录一次更新Masonry的问题
查看>>
Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库
查看>>
CDN基本工作过程
查看>>
基于 HTML5 WebGL 的 3D 仓储管理系统
查看>>
hadoop集群搭建
查看>>
一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](五)
查看>>
GoLang 变量作用域
查看>>
JavaFX “即时搜索” 示例
查看>>
MongoDB分片+复制集
查看>>
vue 将echarts封装为组件一键使用
查看>>
Raffi Krikorian 为“在运行中进行架构重写”提供了指南
查看>>
OneAPM挂牌新三板,续写ITOM新篇章
查看>>
终极指南:如何使用Visual Studio Code进行 Java 开发?
查看>>
通过源码解析 Node.js 中一个 HTTP 请求到响应的历程
查看>>
做了一点事,学到了一些
查看>>
CodeIgniter的密码处理论
查看>>
深入Mysql - 谈谈我对数据类型的认识
查看>>
Tsuru 1.7.0-rc4 发布,基于 Docker 的 PaaS 框架
查看>>
Apache HBase 2.1.3 发布,分布式数据库
查看>>