esp32 WiFiClientSecure 如何等待获取数据
要等待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
原文地址: https://www.cveoy.top/t/topic/hPtD 著作权归作者所有。请勿转载和采集!