在本文中,您将学习如何使用带有Arduino IDE的ESP8266 NodeMCU开发板发出HTTP GET和HTTP POST请求。我们将介绍有关如何获取值,发布JSON对象,URL编码的请求等的示例。
HTTP请求方法:GET与POST
超文本传输协议(HTTP)用作客户端和服务器之间的请求-响应协议。这是一个例子:
ESP8266(客户端)向运行Node-RED(服务器)的Raspberry Pi提交HTTP请求;
最后,响应包含有关请求的状态信息,也可能包含所请求的内容。
HTTP GET
GET用于从指定资源请求数据。它通常用于从API获取值。
例如,您可以有:
请注意,查询字符串(name=温度,value= value1)在HTTP GET请求的URL中发送。
或者,您可以使用简单的请求来返回值或JSON对象,例如:
(使用HTTP GET,URL请求中的每个人都可以看到数据。)
HTTP POST
POST用于将数据发送到服务器以创建/更新资源。例如,将传感器读数发布到服务器。
通过POST发送到服务器的数据存储在HTTP请求的请求主体中:
在正文请求中,您还可以发送JSON对象:
(使用HTTP POST,数据在URL请求中不可见。但是,如果未加密,则在请求正文中仍然可见。)
ESP8266的HTTP GET / POST
测试安装
上传Sketch
将sketch上传到ESP-12E
将Sketch上传到ESP-01
原理图
如果您使用的是ESP8266-12E
如果您使用的是ESP8266-01
Arduino_JSON库
零件需求
准备Node-RED(可选)
其他Web服务或API
ESP8266 HTTP GET:值或URL查询
代码
演示结果
ESP8266 HTTP GET:JSON数据对象或纯文本
代码
设置您的服务器名
HTTP GET请求(JSON对象)
解码JSON对象
演示结果
ESP8266 HTTP POST:编码的URL,JSON数据对象,纯文本
代码
设置您的服务器名
HTTP POST URL编码
HTTP POST JSON对象
HTTP纯文本
演示结果