NodeMCU,一个简单的 GET 请求相当具有挑战性
我正在使用两个 NodeMCUs 和 LUA 来进行一个项目。一个 NodeMCU(服务器)托管一个简单的 Web 服务器以响应特定的URL参数。例如,我在浏览器中输入: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'
使用Arduino ESP8266WiFi&ESP8266HTTPClient库系统正常工作。我打算将其标记为“已解决”,仅因为我不想再处理Lua http选项了。
使用Arduino ESP8266WiFi&ESP8266HTTPClient库系统正常工作。我打算将其标记为“已解决”,仅因为我不想再处理Lua http选项了。
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

根据 https://github.com/nodemcu/nodemcu-firmware#releases,最近的固件二进制文件已经不能下载了(已有超过 2 年)。最简单的方法是前往 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/ 解决除了微不足道的项目外的任何问题。