Как уже упоминалось, я написал скрипт, который подключается к API погоды и распечатывает результат.
Все работает нормально, когда я запускаю его построчно через интерпретатор (ESPlorer "Отправить в ESP- и запустить "построчно""), но когда я запускаю его через dofile()
, он не может подключиться к сайту и дает сбой.
Я в замешательстве и надеюсь, что некоторые из вас найдут ошибку, которую я игнорирую.
Вот код:
data= ""
s= net.createConnection(net.TCP, 0)
s:on("receive", function(so, da) data= da end)
s:connect(80, "api.openweathermap.org")
s:send("GET /data/2.5/weather?q=berlin,de&appid=9a3719c191ce0e1e70673f892013647e&units=metric HTTP/1.1\r\nHost: www.api.openweathermap.org\r\n\r\n")
for x in string.gmatch(data, "([^\n]+)") do
if string.find(x, '"coord"') ~= nil then
for k,v in pairs(cjson.decode(x)) do
if k == "main" or k == "weather" then
print("++++++"..k.."++++++")
if type(v) == "table" then
for kz, vz in pairs(v) do
if kz == 1 or kz == 2 then
for kd,vd in pairs(vz) do
print(kd,vd)
end
else print(kz,vz) end
end end end
end end end
s:close()