2015-11-02 158 views
0

几天前,我很担心nodeMcu发布采购信息发布的问题,无法找到任何解决方案,我敢尝试下一步:GET请求NodeMCU(ESP8266)301错误

conn=net.createConnection(net.TCP, 0) 
conn:on("receive", function(conn, payload) print(payload) end) 
conn:on("connection", function(c) 
conn:send("GET /wifi?temp=24&hum=12&alert HTTP/1.1\r\n" 
.."Host: www.weatherman.bl.ee\r\n" 
.."Cache-Control: no-cache\r\n" 
.."Connection: keep-alive\r\nAccept: */*\r\n\r\n") 
end) 
conn:connect(80, "www.weatherman.bl.ee") 

但这一要求与我回应301错误

HTTP/1.1 301 Moved Permanently 
Date: Mon, 02 Nov 2015 20:03:50 GMT 
Server: Apache 
Location: http://www.weatherman.bl.ee/wifi/?temp=24&hum=12&alert 
Content-Length: 270 
Keep-Alive: timeout=2, max=100 
Connection: Keep-Alive 
Content-Type: text/html; charset=iso-8859-1 

任何想法?可能是标题的问题? 邮递员执行请求罚款

+0

我尝试了相同的代码,并返回'成功保存成功'给我。也许还有别的原因导致301重定向? – hjpotter92

+0

节点mcu固件上的相同代码?如果是,请告诉我您的版本号,请 – once2go

+0

不在nodemcu;但使用luasocket库的lua代码(和curl中的相同头文件)相同。 – hjpotter92

回答

1

服务器可能在请求URL路径的末尾强制执行/

如果您使用带有额外/的URL,重定向响应尝试重定向您,则不应再获得301响应。

/wifi/?temp=24&hum=12&alert 
    ↑ 
    └ extra slash 
0

状态301不是错误,所有从200-399被视为成功。在301的情况下,会有一个位置标题,用于构建重定向的URL。服务器响应给定的URL返回301,在客户端上唯一可以做的事情(除了使用位置关注它)是使用不同的URL。