gpt4 book ai didi

ssl - SIM800L GSM 模块使用 http 工作,但使用 https 时显示错误,为什么?

转载 作者:行者123 更新时间:2023-12-04 22:36:15 26 4
gpt4 key购买 nike

我正在尝试使用 Arduino 和 sim800l GSM 模块将一些传感器数据发送到 MySQL 数据库。当我使用 HTTP 作为 URL 并从我的网站中删除 SSL 证书时,它工作得很好。但是,当我在网站上启用 SSL 证书时,它在串行监视器中显示 HTTP 响应代码 606。这是我的工作代码,没有 SSL 证书(此代码工作完美)

#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(3, 2);

void setup()
{
gprsSerial.begin(19200);
Serial.begin(19200);

Serial.println("Config SIM900...");
delay(2000);
Serial.println("Done!...");
gprsSerial.flush();
Serial.flush();

// attach or detach from GPRS service
gprsSerial.println("AT+CGATT?");
delay(100);
toSerial();


// bearer settings
gprsSerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
delay(2000);
toSerial();

// bearer settings
gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"myapn\"");
delay(2000);
toSerial();

// bearer settings
gprsSerial.println("AT+SAPBR=0,1");
delay(2000);
gprsSerial.println("AT+SAPBR=1,1");
delay(2000);
toSerial();
}


void loop()
{
// initialize http service
gprsSerial.println("AT+HTTPINIT");
delay(2000);
toSerial();

// set http param value
gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://www.website123456.com/data/index.php?data1=2.88&data2=2.93\"");
delay(20000);
toSerial();

// set http action type 0 = GET, 1 = POST, 2 = HEAD
gprsSerial.println("AT+HTTPACTION=0");
delay(6000);
toSerial();

// read server response
gprsSerial.println("AT+HTTPREAD");
delay(10000);
toSerial();

gprsSerial.println("");
gprsSerial.println("AT+HTTPTERM");
toSerial();
delay(300);

gprsSerial.println("");
delay(10000);
}

void toSerial()
{
while(gprsSerial.available()!=0)
{
Serial.write(gprsSerial.read());
}
}

这是我将 URL 替换为 https 并启用网站 ssl 时的输出。 (如您所见,它显示http响应代码606“ Not Acceptable 已成功联系用户代理,但 session 描述的某些方面(例如请求的媒体、带宽或寻址方式) Not Acceptable ”

23:16:48.974 -> Config SIM800L...
23:16:50.946 -> Done!...
23:16:51.079 -> AT+CGATT?

23:16:51.079 -> +CGATT: 1
23:16:51.079 ->
23:16:51.079 -> OK
23:16:53.107 -> AT+SAPBR=3,1,"CONTYPE","GPRS"

23:16:53.107 -> OK
23:16:55.100 -> AT+SAPBR=3,1,"APN","dialogbb"

23:16:55.133 -> OK
23:16:59.122 -> AT+SAPBR=0,1

23:16:59.155 -> OK
23:16:59.155 -> AT+SAPBR=1,1

23:17:01.151 -> OK
23:17:03.185 -> AT+HTTPPARA="URL","https://www.mywebsitttte.com/index.php?dAT+HTTPSSL=1

23:17:08.207 -> OK
23:17:14.221 -> AT+HTTPACTION=0

23:17:14.255 -> OK
23:17:14.255 ->
23:17:14.255 -> +HTTPACTION: 0,606,0
23:17:24.266 -> AT+HTTPREAD

23:17:24.266 -> OK
23:17:36.595 ->
AT+HTTPTERM

23:17:36.595 -> OK

那么我应该对此代码进行哪些修改,才能使用 SSL 证书将数据上传到网站?我看到有人说我需要使用此代码 AT+HTTPSSL=1 进入 SSL 模式,我应该将此代码放在哪里。谢谢

最佳答案

我终于弄清楚了,这是因为这个sim800只支持TLS 1.0。但它是一个已弃用的版本,许多网站和主机服务已禁用它。您可以从此处检查您的服务器 SSL 版本 cdn77.com/tls-test

关于ssl - SIM800L GSM 模块使用 http 工作,但使用 https 时显示错误,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62950561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com