firebase - 来自 ESP8266 的 Firebase 云功能发布请求
问题描述
我正在尝试从 ESP8266 调用 firebase 云功能,它在邮递员那里工作正常,但我在 esp 中得到 http 响应代码 -1。下面是代码,谁能帮我找出我的错误。谢谢
void loop() {
if(WiFi.status()== WL_CONNECTED){ //Check WiFi connection status
Serial.println("Still Connected !");
WiFiClientSecure client;
HTTPClient http;
http.begin(client, "https://us-central1-firedetectionapi.cloudfunctions.net/status"); //Specify destination for HTTP request
http.addHeader("Content-Type", "application/json"); //Specify content-type header
int httpResponseCode = http.POST("{\"F\":\"T\"}"); //Send the actual POST request
if(httpResponseCode>0){
Serial.println("API Called"); //Print return code
}else{
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
http.end(); //Free resources
}else{
Serial.println("Error in WiFi connection");
}
解决方案
使用 HTTPS 协议时,Arduino HTTP 客户端需要服务器证书的指纹/哈希。
这可以通过以下方式设置:
client.setFingerprint("81:dc:88:59:f1:fd:3b:f2:4a:27:c6:ba:39:44:3c:1c:16:4f:9c:ae");
http.begin(client, "https://us-central1-firedetectionapi.cloudfunctions.net/status");
推荐阅读
- laravel - Laravel 从 API 上传图片
- android - 从android中的网络视图截取屏幕截图
- ada - Ada - 预期方面标识符
- php - 在每个 sql 结果后不断添加边距
- optaplanner - Optaplanner 是否支持 CSV 文件作为输入
- macos - MacOS 中的 WebView:如何正确请求文件系统权限
- javascript - 作用域和块作用域在 JavaScript 中是如何工作的?
- java - 如何在android中结束try-catch?
- jxbrowser - 使用 javaFx 从 v6 迁移到 v.7 时出现 jxBrowser 异常
- php - 发送邮件提示错误:535 Authentication Failed