Arduino ESP32 获取网络数据(HTTP POST方式)

Arduino ESP32 获取网络数据(HTTP POST方式)


  • 相关篇《Arduino ESP32 获取网络数据(HTTP GET方式)》
  • 《Arduino ESP32 获取网络数据(HTTP GET方式)》
  • 《Arduino ESP32 获取网络数据(HTTP PATCH方式)》
  • 《Arduino ESP32 获取网络数据(HTTP PUT方式)》

客户端与服务器通讯时最常被用到的方法是:GETPOST,当然除此之外还有其他的方式。

Arduino ESP32 获取网络数据(HTTP POST方式)_第1张图片

  • 相关通讯的方式以及参数:

文件路径: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 

#include 
#include 

//填写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方式)_第2张图片

你可能感兴趣的:(Arduino,ESP32,零基础入门实例教程,http,网络协议,HTTPPOST)