问:您好,我之前还没配置SSL时,用nodemcu 传感器可以对http进行请求,更改数据库,并回传,但配置了SSL后就出错了,错误是我在硬件上检测到的,“The plain HTTP was sent to HTTPS port” 目前是无法写数据和回传的,我网上查了一篇文章https://blog.csdn.net/iteye_5799/article/details/ 应该在服务器上可以配置。也就是我还能用HTTP原来的方式进行调用和回传。具体的程序我附在下方,麻烦看看怎么解决。我微信小程序又要用到SSL,所以不能停用SSL,谢谢
#include <ESP8266WiFi.h>#include <dht11.h> dht11 DHT; const char* ssid = \”\”;//改为你设置的网络 char* = \”\”;//改为你设置的网络密码 const char* host = \”www.sjrjw.com\”;//改为你设置的网站域名#define LED_BUILTIN D7 //LED连接在8266的GPIO0上 代码烧录进8266,烧写完成后把LED的正极接GPIO0,LED的负极接地#define DHT_BUILTIN D4 //DHT连接在8266的GPIO2上 代码烧录进8266,烧写完成后把DHT11的正极接GPIO2 做为输入int switch1=1;void setup() { Serial.begin; delay(10); pinMode(LED_BUILTIN, OUTPUT); pinMode(DHT_BUILTIN, INPUT); Serial.println(); Serial.println(); Serial.print(\” to \”); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(\”.\”); } Serial.println(\”\”); Serial.println(\”WiFi \”); Serial.println(\”IP address: \”); Serial.println(WiFi.localIP());} int value = 0; void loop() { delay(1000);//可以用这一个来调整响应和心跳速度 value; Serial.print(\” to \”); Serial.println(host); if(switch1 == \’0\’){ digitalWrite(LED_BUILTIN, LOW); }else if(switch1 == \’1\’){ digitalWrite(LED_BUILTIN, HIGH); }int chk; //chk用于存储DHT11传感器的数据Serial.print(\”DHT11, \\t\”); //读取DHT11传感器的数据 chk = DHT.read(DHT_BUILTIN);
client; const int =443;//开启SSL后端口改为443,http端口为80 if (!client.connect(host, httpsPort)) { Serial.println(\” failed\”); return; } // We now a URI for the url = \”/updown.php\”; //表示你传到网站上的传输文件 url = \”?token=\”; url = \”\”;//要加上这一个token和的要一致 url = \”&temp=\”; url = DHT.temperature; url = \”&humidity=\”; url = DHT.humidity; Serial.print(\” URL: \”); Serial.println(url); // This will send the to the client.print(String(\”GET \”) url \” HTTP/1.1\\r\\n\” \”Host: \” host \”\\r\\n\” \”User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36\” \”\\r\\n\” \”Connection: close\\r\\n\\r\\n\”); long = millis(); while (client.available() == 0) { if (millis() – > 5000) { Serial.println(\”>>> Timeout !\”); client.stop(); return; } } // Read all the lines of the reply from and print them to while(client.available()){ char c = client.read(); Serial.println( c); if (c == \'{\’){ = client.read(); } } Serial.println( switch1); Serial.println(\” connection\”);}
,主机配置完SSL出错
答:您好,由于 https 相对于 http 多了一个客户端和服务端协商证书的过程, 所以需要确保您的 client 对象能够正常的发送 https 握手的过程, 可以测试访问 https://www.baidu.com, 解决方法: 您可以尝试使用 库试试,非常感谢您长期对我司的支持!
西部数码(west.cn)是经工信部、ICANN、CNNIC认证审批,持有ISP、云牌照、IDC、CDN、顶级域名注册商等全业务资质的正规老牌服务商,自成立至今20余年专注于域名注册、虚拟主机、云服务器、企业邮箱、企业建站等互联网基础服务!
截止目前,已经为超过2000万个域名提供了注册、解析等服务,是中国五星级域名注册注册商!已为超过50万个网站提供了高速稳定的云托管服务,获评中国最受用户喜欢云主机服务商。
西部数码提供全方位7X24H专业售后支撑,域名注册特价1元起,高速稳定云主机45元起,更多详情请浏览西部数码官网:https://www.west.cn/