NodeMCU не подключается к веб-сайту

Я пытаюсь подключить свой NodeMCU V3 (на основе ESP8266) к http://ya.ru с помощью этого кода:

station_cfg={}
station_cfg.ssid="ssid" -- actual ssid was here
station_cfg.pwd="password" -- and password
server_link = "http://ya.ru"

wifi.setmode(wifi.STATION)
wifi.sta.config(station_cfg)
wifi.sta.connect()

http.put(server_link,
  'hi',
  function(code, data)
    print(code)
    if (code < 0) then
      print("HTTP request failed")
    else
      print(code, data)
    end
  end)

Но соединение не удалось, вывод:

HTTP client: Response too long (8461)

Что может быть не так? SSID и пароль верны. Та же проблема со всеми GET, POST, PUT методами.

UPD: Хм, все отлично работает с одним и тем же скриптом, написанным на языке C в Arduino IDE. Во всяком случае, мне странно, что интерпретатор Lua не может выполнять такие запросы, а версия, скомпилированная из C, может.


person Dmitriy    schedule 09.08.2019    source источник


Ответы (1)


Что может быть не так?

Модуль HTTP на самом деле довольно точно сообщает вам, что не так.

HTTP client: Response too long (8461)

Ответ слишком длинный. И тоже в этом контексте означает: дольше, чем он может выдержать. Похоже, вам нужно прибегнуть к использованию низкоуровневого net:socket:send() согласно https://nodemcu.readthedocs.io/en/latest/modules/net/#netsocketsend

person Marcel Stör    schedule 10.08.2019