在ESP8266 Lua中GET请求服务器页面后的空载荷
2017-5-4 16:45:25
收藏:0
阅读:80
评论:1
在使用Lua的ESP8266 WiFi模块获取页面数据时,我正在获得零负载。
这里是我的伪代码:
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
wifi.sta.connect()
tmr.alarm(1,10000, 1, function()
if (wifi.sta.getip() == nil) then
print("IP unavaiable, Waiting...")
else
foo()
end
end)
function foo()
print("Inside foo function"..node.heap());
conn = nil
conn=net.createConnection(net.TCP,0) -- 30 seconds timeout time of server
conn:on("receive", function(conn, payload)
-- local buf = "";
startRead = false
gpioData = ""
print("payload : "..#payload);
for i = 1, #payload do
print(i);
end
end)
conn:connect(80,"server.co.in")
conn:on("connection", function(conn, payload)
print("Server Connected, sending event")
conn:send("GET /mypage?id=deadbeef HTTP/1.1 200 OK\r\nHost: server.co.in\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n") end)
conn:on("sent",function(conn)
print("Closing server connection")
conn:close()
end)
end
我正在使用NodeMCU Lua,猜测即使我使用Arduino框架,也是一样的。
NodeMCU定制版由frightanic.com提供
分支:主要
提交:22e1adc4b06c931797539b986c85e229e5942a5f
SSL:否
模块:adc,bit,cjson,file,gpio,http,i2c,mdns,mqtt,net,node,ow,struct,tmr,uart,websocket,wifi
构建日期:2017-05-03 11:24
由SDK 2.0.0(656edbf)上的Lua 5.1.4提供支持
我能在我的服务器上看到所有请求,这意味着服务器请求代码是OK的,但有效载荷/响应为空白。
输出完全为空白...
请帮助。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 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 代码?

这不是一个有效的 HTTP 请求。它看起来更像是 HTTP 请求和 HTTP 响应的混合。服务器可能会因为无法理解这个请求而直接关闭连接。一个有效的 HTTP 请求应该像这样:
GET /mypage?id=deadbeef HTTP/1.1\r\n Host: ...\r\n \r\n除此之外,你使用的是 HTTP/1.1,甚至明确指定了你想使用 HTTP 持久连接(
Connection: keep-alive),尽管这个行为在 HTTP/1.1 中是隐含的。因此,你不能期望响应会立即跟随一个连接关闭,就像你当前所做的一样。而且,由于使用了 HTTP/1.1,你需要处理 HTTP 分块编码。避免这种复杂性的最简单方法是使用 HTTP/1.0 而不使用
Connection头部,或将其明确设置为close。如果你真的想要处理这些复杂性,请仔细研究标准。