Lua发送JSON请求体。

我很新于LUA,正在尝试使用LUA从我的ESP8266向我的本地主机上的PHP服务器发送JSON POST,我在互联网上搜索,找不到任何例子来做到这一点,有人可以帮我吗?

我的LUA代码

-- 测试于NodeMCU 0.9.5 build 20141222 ... 20150108
--将连接时间和堆大小发送到http:server.php
wifi.setmode(wifi.STATION)
wifi.sta.config(“VIVA-4G-LTE-6134”,“VIVA176429”)
-- wifi.sta.config(“AndroidAP”,“rapz4736”)

print'httpget.lua已启动')
Tstart=tmr.now()

conn = nil
conn = net.createConnection(net.TCP,0--显示检索到的网页

conn:on(“receive”,functionconnpayloadsuccess = true
                       printpayloadend--一旦连接,请请求页面(将参数发送到php脚本)

connon(“connection”,functionconnpayloadprint('\ nConnected')
                       connsend(“POST /server.php?”
                        ..“name = mometto”
                        ..“&年龄= 27”
                        ..“ HTTP / 1.1 \ r \ n”
                        ..“Host:172.0.0.1 \ r \ n”
                        ..“Connectionclose \ r \ n”
                        ..“Accept:* / * \ r \ n”
                        ..“User-AgentMozilla / 4.0”
                        ..“(兼容; esp8266 Lua;"
                        ..“Windows NT 5.1)\ r \ n”
                        ..“\ r \ n”)
                   -- conn:send(“what”:“books”,“count”:3)
                       end)

--断开连接时,让它知道
conn:on(“disconnection”,function(conn,payload)print('\ nDisconnected')end)

conn:connect(80,'192.168.43.181')

在这里,我很容易发送参数,但是当我想要发送请求正文时,我不能,我尝试添加此代码以发送请求正文

conn:send(“what”:“books”,“count”:3)

但是它不起作用 而且我收到了这个消息: 输入图像说明

那么有人可以提供任何帮助吗?

点赞
用户320546
用户320546

所以,首先,这是一个无效的 Lua 代码,用于字典。其次,如果你想要发送 JSON 数据,你需要使用 cjson 模块来编码它。

尝试像这样做:

local msg = {"what":"books", "count":3}
conn:send(cjson.encode(msg))
2015-11-08 12:33:18