A9G 上通过 AT 命令的 HTTPS 请求在 7 个请求后失败; HTTP 工作正常

问题描述

我正在使用 AT 命令与来自 ESP8266 的 Ai-Thinker A9G 芯片通信,作为 GPS 跟踪器单元的一部分。开始时效果很好,然后 HTTPS 请求在成功发送 7 或 8 后开始失败。但是,发出 HTTP 请求仍然没有问题。

当 HTTP 请求工作正常时,什么可能导致 HTTPS 请求在前 7 或 8 次之后失败?


详情...

当设备启动时,我使用以下方法建立 GPRS 连接:

AT+CGREG=1
> OK

AT+CGATT=1
> +CGATT:1
> OK

AT+CGDCONT=1,"IP","data.uk" // APN for 1pmobile
> OK

AT+CGACT=1,1
> OK

AT+CGACT?
> +CGACT: 1,1
> OK

然后每N分钟发布一次位置,如下:

AT+HTTPPOST="https://<URL>","application/x-www-form-urlencoded","arg1=val1&arg2=val2&..."

这在前 7 或 8 次有效,之后所有 HTTPS 请求都失败并显示以下消息(完全按照从 A9G 芯片发送的方式复制,包括固件的拼写错误):

+cme ERROR: parameters are invalid
failure,pelase check your network or certificate!

HTTPPOST 命令开始失败后,我尝试了以下状态检查,但一切都表明芯片处于良好状态并且仍然在线:

AT+CIPSTATUS
> +CIPSTATUS:
> STATE:IP INITIAL

AT+CGACT?
> +CGACT: 1,1
> OK

AT+CGREG?
> +CGREG: 1,1
> OK

AT+CGDCONT?
> +CGDCONT:1,"data.uk","<IP address>",0
> OK

我也试过:

  • 连续或间隔 5 分钟发送请求 - 行为没有变化,无论经过多少时间,它仍然会在 7 或 8 个请求后失败。
  • 更换到不同的 SIM 卡并更新 CGDCONT 中指定的 APN - 没有变化。
  • 使用 AT+CGACT=0,1AT+CGATT=0AT+CGREG=0 停用网络连接,然后重新启用它 - 没有变化。
  • 发出 AT+HTTPGET 请求而不是 HTTPPOST - 没有变化。
  • 重新启动 A9G 芯片 - 这会给我另外 7 或 8 个请求,然后重复该模式。
  • 向 HTTP URL 而非 HTTPS 发出请求 - 如前所述,这些工作正常。

令人恼火的是,A9/A9G 芯片的文档很薄。其中大部分是中文 PDF,不能很好地与 Google 翻译配合使用。这些是我发现的最有用的链接,可以将我上面的内容拼凑在一起:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)