lua 发起的Content-Type 为application/json; charset=UTF-8的请求

前言

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

http://www.handjingling.com/e…
https://www.zybuluo.com/minik…
http://www.runoob.com/lua/lua…

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

经典问题

协同

生产者-消费者问题
现在我就使用Lua的协同程序来完成生产者-消费者这一经典问题。
local newProductor

function productor()
     local i = 0
     while true do
          i = i + 1
          send(i)     -- 将生产的物品发送给消费者
     end
end

function consumer()
     while true do
          local i = receive()     -- 从生产者那里得到物品
          print(i)
     end
end

function receive()
     local status, value = coroutine.resume(newProductor)
     return value
end

function 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/hosts
iPhone:/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
    原文作者:kunnan
    原文地址: https://segmentfault.com/a/1190000012018604
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞