使用Arduino ESP8266 SparkFun Shield进行HTTP POST

时间:2015-12-23 02:32:06

标签: http post get arduino esp8266

我正在尝试将POST HTTP发送到运行node.js的本地服务器。 GET请求运行良好。使用Postman(本地)的POST效果很好,我没有任何防火墙。但我无法用Arduino运行它。

我正在使用的代码是一个简单的SparkFun客户端示例,其中我只将GET更改为POST:

GCHandle

httpPost是:

audio

我进入串行监视器的所有内容都是“与服务器连接!”......

我做错了什么?

2 个答案:

答案 0 :(得分:1)

标题和正文之间需要有一个空行:

glBindTexture([videoWriter textureCacheTarget], [videoWriter textureCacheID]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, [videoWriter textureCacheID], 0);

另外,按照标准,您应该使用const String httpPost = "POST /meteo HTTP/1.1\r\n" "Host: 192.168.0.131:5000\r\n" "User-Agent: Arduino/1.0\r\n" "Connection: close\r\n" "Content-Type: application/x-www-form-urlencoded;\r\n" "\r\n" "windspeedmph=0&winddir=0&humidity=0&temp=0&pressure=0\n"; 来换行,而不仅仅是\r\n HTTP header line break style

答案 1 :(得分:1)

在我的情况下,指定Content-Length字段也很重要。然后应用程序开始按预期工作。如果没有Content-Length字段,则接收方无法看到数据。 Content-Length指定有效负载的长度,在您的情况下是字符串的长度:&#34; windspeedmph = 0&amp; winddir = 0&amp;湿度= 0&amp; temp = 0&amp; pressure = 0 \ n&#34;。< / p>