gpt4 book ai didi

http - NodeMCU,一个简单的 GET 请求是一个很大的挑战

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:38 26 4
gpt4 key购买 nike


我有一个项目正在进行,使用两个 NodeMCU 和 LUA。一个 NodeMCU(服务器)托管一个简单的 Web 服务器,该服务器对特定的 URL 参数使用react。例如,我去:http://192.168.1.179/?pin=ON1在我的浏览器中,它的 LED 灯亮起等。我想通过按一下按钮与其他 NodeMCU(客户端)一起重新创建此操作。唯一阻碍我的是这个 HTTP GET 请求。

对于初学者,我想简单地使用 http 模块 .. 但该模块不存在于可用的最新固件版本中。我不知道这是为什么?我不想构建最新的 - 最新的。 2 版本差异...我已提交自定义构建。

require('http')
stdin:1: module 'http' not found:
no field package.preload['http']
no file 'http.lc'
no file 'http.lua'

显然还有其他更古老的方法:

    conn=net.createConnection(net.TCP, false) 
conn:on("receive", function(conn, pl) print(pl) end)
conn:connect(80,"192.168.1.179")
conn:send("GET /?pin=ON1 HTTP/1.1\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")

我一直在尝试让它发挥作用。 DNS 因完整路径而失败。照原样,它只为打印部分输出 0。请注意,这是一个本地服务器,它的地址是直接指定的。我正在从路由器获取 DHCP,并且尝试使用静态 IP。我不知所措,不知道还能做什么。这也是完成该项目的最后一步,这让我抓狂!任何帮助,将不胜感激。我应该注意到我丢失了我的服务器脚本,所以我无法引用它。它虽然有效。 x_X'

最佳答案

根据 https://github.com/nodemcu/nodemcu-firmware#releases您不能再下载最近的二进制文件(>2y 一直是这样)。最简单的是去https://nodemcu-build.com/并为您构建一个二进制文件。确保选择 HTTP 模块。

但是请注意,HTTP 模块是一个 HTTP 客户端!

关于使用这个 HTTP 模块发出简单的 GET 请求,我建议看一下 https://nodemcu.readthedocs.io/en/latest/en/modules/http/#httpget :

http.get("http://httpbin.org/get?paul=muller", nil, function(code, data)
if (code < 0) then
print("HTTP request failed")
else
print(code, data)
end
end)

这会产生这样的结果:

200 {
"args": {
"paul": "muller"
},
"headers": {
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "ESP8266"
},
"origin": "xxx.xxx.xxx.xxx",
"url": "http://httpbin.org/get?paul=muller"
}

要构建服务器,您需要 net 模块和 net.createServer(net.TCP)。我们在 https://nodemcu.readthedocs.io/en/latest/en/modules/net/#example_6 有一些例子.

我建议不要构建自己的服务器,而是使用 https://github.com/marcoskirsch/nodemcu-httpserver/而不是琐碎项目以外的任何事情。

关于http - NodeMCU,一个简单的 GET 请求是一个很大的挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45365526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com