Https ESP32 WifiClientSecure无响应
我正在做一个项目,使用谷歌脚本将ESP32-CAM中的图像发布到谷歌硬盘。 无论我将等待时间设置为多长,我总是收到错误“无响应”。我试着使用http和https(wificlient和wificlientsecure),但不管怎样都无法工作。 可能是什么问题Https ESP32 WifiClientSecure无响应,https,arduino,esp32,Https,Arduino,Esp32,我正在做一个项目,使用谷歌脚本将ESP32-CAM中的图像发布到谷歌硬盘。 无论我将等待时间设置为多长,我总是收到错误“无响应”。我试着使用http和https(wificlient和wificlientsecure),但不管怎样都无法工作。 可能是什么问题 WiFiClientSecure clienthttps; Serial.println("Connect to " + String(myDomain)); if (clienthttps.connect(myD
WiFiClientSecure clienthttps;
Serial.println("Connect to " + String(myDomain));
if (clienthttps.connect(myDomain, 443)) {
Serial.println("Connection successful");
camera_fb_t * fb = NULL;
fb = esp_camera_fb_get();
if (!fb) {
Serial.println("Camera capture failed");
delay(1000);
ESP.restart();
return;
}
char *input = (char *)fb->buf;
char output[base64_enc_len(3)];
String imageFile = "";
for (int i = 0; i < fb->len; i++) {
base64_encode(output, (input++), 3);
if (i % 3 == 0) imageFile += urlencode(String(output));
}
String Data = myFilename + mimeType + myImage;
esp_camera_fb_return(fb);
Serial.println("Send a captured image to Google Drive.");
Serial.println("POST " + myScript + " HTTP/1.1");
Serial.println("Host: " + String(myDomain));
Serial.println("Content-Length: " + String(Data.length() + imageFile.length()));
Serial.println("Content-Type: application/x-www-form-urlencoded");
Serial.println(Data);
Serial.println();
clienthttps.println("POST " + myScript + " HTTP/1.1");
clienthttps.println("Host: " + String(myDomain));
clienthttps.println("Content-Length: " + String(Data.length() + imageFile.length()));
clienthttps.println("Content-Type: application/x-www-form-urlencoded");
clienthttps.println();
clienthttps.print(Data);
int Index;
for (Index = 0; Index < imageFile.length(); Index = Index + 1000) {
clienthttps.print(imageFile.substring(Index, Index + 1000));
}
Serial.println("Waiting for response.");
long int StartTime = millis();
while (!clienthttps.available()) {
Serial.print(".");
delay(100);
if ((StartTime + waitingTime) < millis()) {
Serial.println();
Serial.println("No response.");
//If you have no response, maybe need a greater value of waitingTime
break;
}
}
Serial.println();
while (clienthttps.available()) {
Serial.print(char(clienthttps.read()));
}
} else {
Serial.println("Connected to " + String(myDomain) + " failed.");
}
clienthttps.stop();
WiFiClientSecure clienthttps;
Serial.println(“连接到”+字符串(myDomain));
if(clienthttps.connect(myDomain,443)){
Serial.println(“连接成功”);
摄像头_fb_t*fb=NULL;
fb=esp_摄像头_fb_get();
如果(!fb){
Serial.println(“摄像头捕获失败”);
延迟(1000);
特别是重新启动();
返回;
}
字符*输入=(字符*)fb->buf;
字符输出[base64_enc_len(3)];
字符串imageFile=“”;
对于(int i=0;ilen;i++){
base64_编码(输出,(输入+),3);
如果(i%3==0)imageFile+=urlencode(字符串(输出));
}
字符串数据=myFilename+mimeType+myImage;
esp_摄像头_fb_返回(fb);
println(“将捕获的图像发送到Google Drive。”);
Serial.println(“POST”+myScript+“HTTP/1.1”);
Serial.println(“主机:“+String(myDomain));
Serial.println(“内容长度:”+String(Data.Length()+imageFile.Length());
Serial.println(“内容类型:application/x-www-form-urlencoded”);
Serial.println(数据);
Serial.println();
println(“POST”+myScript+“HTTP/1.1”);
println(“主机:“+String(myDomain));
println(“内容长度:”+String(Data.Length()+imageFile.Length());
println(“内容类型:application/x-www-form-urlencoded”);
clienthttps.println();
clienthttps.打印(数据);
整数指数;
对于(索引=0;索引
不熟悉该库,但是clienthttps.print
真的可以用于二进制数据(可能嵌入了零)?您好,它工作了吗?我设法让它使用不同的API,最后使用电报作为备份功能。