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

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP32 获取网络数据(HTTP POST方式)相关的知识,希望对你有一定的参考价值。

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


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

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

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

实例代码

/**
 * 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方法获取网络时间和气象数据

Arduino ESP32 最简单直接获取网络时间方法

Arduino ESP32 获取网络时间并同步本地RTC时钟

基于Arduino和ESP8266的JSON数据获取与解压之和风天气