Arduino ESP32 發送HTTP請求 TCP Client 獲取蘇寧服務器時間


參考:https://www.qutaojiao.com/8043.html

ESP8266的HTTP請求:http://www.taichi-maker.com/homepage/iot-development/iot-dev-reference/esp8266-c-plus-plus-reference/esp8266httpclient/

Arduino中的示例HTTPClient中的BasicHTTPClient和BasicHTTPSClient可以作為參考

#include <WiFi.h>
#include <HTTPClient.h>
 
const char* ssid = "hg2020";
const char* password =  "12345678";
 
void setup() {
 
  Serial.begin(115200);
  delay(400);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
 
  Serial.println("Connected to the WiFi network");
 
}
 
void loop() {
 
  if ((WiFi.status() == WL_CONNECTED)) { //Check the current connection status
 
    HTTPClient http;
 
    http.begin("http://quan.suning.com/getSysTime.do"); //Specify the URL
    int httpCode = http.GET();                                        //Make the request
 
    if (httpCode > 0) { //Check for the returning code
 
        String payload = http.getString();
        Serial.println(httpCode);
        Serial.println(payload);
      }
 
    else {
      Serial.println("Error on HTTP request");
    }
 
    http.end(); //Free the resources
  }
 
  delay(1000);
 
}

ESP32去訪問服務器還可以用TCP Client實現:參考

#include <WiFi.h>

const char *ssid = "********";
const char *password = "********";

const char *host = "www.example.com"; //欲訪問的域名

void setup()
{
    Serial.begin(115200);
    Serial.println();

    WiFi.mode(WIFI_STA);
    WiFi.setSleep(false); //關閉STA模式下wifi休眠,提高響應速度
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(500);
        Serial.print(".");
    }
    Serial.println("Connected");
    Serial.print("IP Address:");
    Serial.println(WiFi.localIP());
}

void loop()
{
    WiFiClient client; //聲明一個客戶端對象,用於與服務器進行連接

    Serial.println("嘗試訪問服務器");
    if (client.connect(host, 80)) //80為一般網站的端口號
    {
        Serial.println("訪問成功");

        //向服務器發送請求頭,請求網頁數據
        //******作為WEB Client使用最核心的就是和WEB Server連接成功后發送相應的請求頭請求數據******
        //******WEB Server在收到請求頭后返回對應的數據,比如返回網頁、圖片、文本等******
        //******關於請求頭可以參考之前的文章《從零開始的ESP8266探索(06)-使用Server功能搭建Web Server》******
        client.print(String("GET /") + " HTTP/1.1\r\n" +
                     "Host: " + host + "\r\n" +
                     "Connection: close\r\n" +
                     "\r\n");

        //以下代碼將收到的網頁數據按行打印輸出
        //如果是常見的WEB Client(瀏覽器)的話會將收到的html文件渲染成我們一般看到的網頁
        while (client.connected() || client.available()) //如果已連接或有收到的未讀取的數據
        {
            if (client.available()) //如果有數據可讀取
            {
                String line = client.readStringUntil('\n'); //按行讀取數據
                Serial.println(line);
            }
        }

        client.stop(); //關閉當前連接
    }
    else
    {
        Serial.println("訪問失敗");
        client.stop(); //關閉當前連接
    }
    delay(10000);
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM