Tcp 向ESP8266 Lua中的服务器页面发出GET请求后,有效负载为空

Tcp 向ESP8266 Lua中的服务器页面发出GET请求后,有效负载为空,tcp,lua,wifi,esp8266,nodemcu,Tcp,Lua,Wifi,Esp8266,Nodemcu,我在尝试使用使用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...")

我在尝试使用使用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 custom build by frightanic.com
    branch: master
    commit: 22e1adc4b06c931797539b986c85e229e5942a5f
    SSL: false
    modules: adc,bit,cjson,file,gpio,http,i2c,mdns,mqtt,net,node,ow,struct,tmr,uart,websocket,wifi
 build  built on: 2017-05-03 11:24
 powered by Lua 5.1.4 on SDK 2.0.0(656edbf)
我能够看到服务器上的所有请求,这意味着服务器请求代码正常,但负载/响应为空

输出为完全空白

请帮忙

这不是有效的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,而不是使用
连接
头或将其显式设置为
关闭
。如果你真的想处理这种复杂性,请仔细研究

这不是有效的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,而不是使用
连接
头或将其显式设置为
关闭
。如果您真的想处理这种复杂性,请仔细研究。

查看和中文档中的示例。查看和中文档中的示例。非常感谢。这对我很有帮助。我还可以猜测,标题使它成为一个错误的请求,我得到了404。你能再帮我一次吗?我试图在LUA中创建一个本地服务器,同时监听端口80上的服务器页面。这可能吗?如果不可能的话,我该怎么做?@aditgupta100:据我所知,原来的问题已经得到了回答(因此应该被接受)。你现在提出的是一个全新的问题,应该作为一个新问题而不是在评论中提出。这样你可以得到更好的答案,其他人也会从中受益,因为如果问题出现,没有人会搜索所有评论。我已经在这里问过了,非常感谢。这对我很有帮助。我还可以猜测,标题使它成为一个错误的请求,我得到了404。你能再帮我一次吗?我试图在LUA中创建一个本地服务器,同时监听端口80上的服务器页面。这可能吗?如果不可能的话,我该怎么做?@aditgupta100:据我所知,原来的问题已经得到了回答(因此应该被接受)。你现在提出的是一个全新的问题,应该作为一个新问题而不是在评论中提出。这样,你可以得到更好的答案,其他人也会受益,因为如果所描述的问题存在,没有人会搜索所有评论。我已经在这里问过了