День добрый! Пытаюсь тут изучать NodeMCU и Lua и возникла проблема: Хочу получить с сервиса погоды Accuweather.com прогноз погоды в формате json стандартным методом GET, все бы ничего да на выходе получаю обрезку данных. Как я понял данные сгружаются в переменную payload, которая имеет ограниченный размер (или буфер какой то переполняется), а ответ сервера большой - 16k Может кто знает как решить проблему? Код (Text): function getHTTPreq() print('send GET to http server...') conn=net.createConnection(net.TCP, 0) conn:on("receive", function(conn, payload) local payload = string.match(payload, "{.*}") print("got answer") print(payload) ; conn:close(payload) end) conn:connect(80,"52.7.72.188") conn:send("GET /forecasts/v1/daily/5day/2437767?apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".. "&language=ru-ru&details=true&metric=true HTTP/1.1 \r\n") conn:send("Host: dataservice.accuweather.com\r\n") conn:send("Accept: */*\r\n") conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n") conn:send("\r\n") end tmr.alarm(0, 1000, 1, function() if wifi.sta.getip()==nil then print("connecting to AP...") else print('ip: ',wifi.sta.getip()) getHTTPreq() tmr.stop(0) end end) Результат: {"Headline":{"EffectiveDate":"2016-12-29T19:00:00+03:00","EffectiveEpochDate":1483027200,"Severity":2,"Text":"Гололед Р’ четверг ночью","Category":"ice","EndDate":"2016-12-30T07:00:00+03:00","EndEpochDate":1483070400,"MobileLink":"http://m.accuweather.com/ru/ru/tsvy...ed-weather-forecast/2437767?unit=c&lang=ru-ru","Link":"http://www.accuweather.com/ru/ru/ts...ly-weather-forecast/2437767?unit=c&lang=ru-ru"} (с кодировкой еще беда, но фиг с ней пока)
По идее, функция payload должна вызывать несколько раз, каждый раз с новым куском данных, так что вы зря закрываете соединение тут conn:close(payload) Хотя не писал ничего под эту прошивку.