Arduino ESP32 获取网络数据(HTTP POST方式)
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP32 获取网络数据(HTTP POST方式)相关的知识,希望对你有一定的参考价值。
Arduino ESP32 获取网络数据(HTTP POST方式)
- 相关篇《Arduino ESP32 获取网络数据(HTTP GET方式)》
- 《Arduino ESP32 获取网络数据(HTTP GET方式)》
- 《Arduino ESP32 获取网络数据(HTTP PATCH方式)》
- 《Arduino ESP32 获取网络数据(HTTP PUT方式)》
客户端与服务器通讯时最常被用到的方法是:
GET
和POST
,当然除此之外还有其他的方式。
- 相关通讯的方式以及参数:
文件路径:C:\\Users\\Administrator\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\1.0.6\\libraries\\HTTPClient\\src中的
HTTPClient.h
文件(具体文件位置根据个人电脑的安装位置,本文只是提供给大家一个参考!)
int GET();
int PATCH(uint8_t * payload, size_t size);
int PATCH(String payload);
int POST(uint8_t * payload, size_t size);
int POST(String payload);
int PUT(uint8_t * payload, size_t size);
int PUT(String payload);
int sendRequest(const char * type, String payload);
int sendRequest(const char * type, uint8_t * payload = NULL, size_t size = 0);
int sendRequest(const char * type, Stream * stream, size_t size = 0);
- 不需要要额外库,全部使用自带核心固件的库
- 访问对象:http://quan.suning.com/getSysTime.do
实例代码
/**
* ESP32 HTTP GET方式获取网络数据
*
*/
#include <Arduino.h>
#include <WiFi.h>
#include <HTTPClient.h>
//填写WIFI入网信息
const char* ssid = "MERCURY_D268G"; // WIFI账户
const char* password = "pba5ayzk"; // WIFI密码
void setup() {
Serial.begin(115200);
Serial.println();
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
for(uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\\n", t);
Serial.flush();
delay(1000);
}
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
// wait 1 second for re-trying
delay(1000);
}
/* 开始访问指定服务器地址,获取数据 */
Serial.print("Connected to ");
Serial.println(ssid);
HTTPClient http;//创建 WiFiClient 实例化对象
Serial.print("[HTTP] begin...\\n");
// configure traged server and url
http.begin("http://quan.suning.com/getSysTime.do"); //HTTP
Serial.print("[HTTP] POST...\\n");
// start connection and send HTTP header
int httpCode = http.POST("http://quan.suning.com/getSysTime.do");//post请求
// httpCode will be negative on error
if(httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\\n", httpCode);
// file found at server
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\\n", http.errorToString(httpCode).c_str());
}
http.end();
}
void loop() {
delay(5000);
}
- 串口打印网络获取的数据
以上是关于Arduino ESP32 获取网络数据(HTTP POST方式)的主要内容,如果未能解决你的问题,请参考以下文章
Arduino ESP32 获取网络数据(HTTP POST方式)
Arduino ESP32 获取网络数据(HTTP PATCH方式)
Arduino ESP32 通过getString方法获取网络时间和气象数据