Lua отправить JSON тело запроса

Я очень плохо знаком с LUA, и я пытаюсь отправить сообщение json из моего ESP8266 с помощью LUA на сервер PHP на моем локальном хосте, я искал в интернете и не могу найти какой-либо пример, который может помочь мне, пожалуйста?

мой код LUA

-- tested on NodeMCU 0.9.5 build 20141222...20150108
-- sends connection time and heap size to http:server.php
wifi.setmode(wifi.STATION)
wifi.sta.config("VIVA-4G-LTE-6134","VIVA176429")
--wifi.sta.config("AndroidAP","rapz4736")

print('httpget.lua started')
Tstart  = tmr.now()

conn = nil
conn = net.createConnection(net.TCP, 0)

-- show the retrieved web page

conn:on("receive", function(conn, payload)
success = true
print(payload)
end)

-- once connected, request page (send parameters to a php script)

conn:on("connection", function(conn, payload)
print('\nConnected')
conn:send("POST /server.php?".."name=mometto".."&age=27".." HTTP/1.1\r\n".."Host: 172.0.0.1\r\n".."Connection: close\r\n".."Accept: */*\r\n".."User-Agent: Mozilla/4.0 ".."(compatible; esp8266 Lua; ".."Windows NT 5.1)\r\n".."\r\n")
--  conn:send("what":"books", "count":3 )
end)

-- when disconnected, let it be known
conn:on("disconnection", function(conn, payload) print('\nDisconnected') end)

conn:connect(80,'192.168.43.181')

здесь мне легко отправить параметры, но когда я хочу отправить тело запроса, я не могу, я попытался добавить этот код для отправки тела запроса

conn:send("what":"books", "count":3 )

Но это не работает
и я получаю это сообщение:
введите описание изображения здесь

Так может ли кто-нибудь помочь мне, пожалуйста?

2

Решение

Итак, во-первых, это неверный код Lua для словаря. Во-вторых, если вы хотите отправить JSON, вам нужно кодировать его с помощью cjson модуль.

Попробуйте что-то вроде

local msg = {"what":"books", "count":3}
conn:send(cjson.encode(msg))
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]