要等待ESP32 WiFiClientSecure获取数据,可以使用available()函数来检查是否有可用的数据。

以下是一个示例代码,展示了如何使用WiFiClientSecure等待获取数据:

#include <WiFi.h>
#include <WiFiClientSecure.h>

const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* host = "your_HOST";
const int httpsPort = 443;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
  
  WiFiClientSecure client;
  if (!client.connect(host, httpsPort)) {
    Serial.println("Connection failed");
    return;
  }
  
  String url = "/your_URL";
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Connection: close\r\n\r\n");
  
  Serial.println("Request sent");
  delay(1000);
  
  while (client.connected() && !client.available()) {
    delay(100);
    Serial.println("Waiting for response...");
  }
  
  if (client.available()) {
    Serial.println("Response received");
    while (client.available()) {
      String line = client.readStringUntil('\r');
      Serial.print(line);
    }
  } else {
    Serial.println("No response received");
  }
  
  client.stop();
  Serial.println("Client disconnected");
}

void loop() {
  
}

在上面的例子中,首先连接到WiFi网络。然后创建一个WiFiClientSecure对象,使用connect()函数连接到指定的主机和端口。然后发送GET请求,并使用available()函数检查是否有可用的数据。

在while循环中,首先检查连接是否仍然存在并且没有可用的数据。如果没有可用的数据,就使用delay()函数等待一段时间,并输出"Waiting for response..."来显示正在等待响应。

如果available()函数返回true,表示有可用的数据,就输出"Response received",并使用readStringUntil()函数读取所有数据,并将其输出到串口。

如果available()函数返回false,表示没有收到响应,就输出"No response received"。

最后,使用stop()函数关闭连接,并输出"Client disconnected"来表示客户端已断开连接。

请根据您的实际需求修改代码中的主机、端口和URL

esp32 WiFiClientSecure 如何等待获取数据

原文地址: https://www.cveoy.top/t/topic/hPtD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录