SIMCOM SIM5230A HTTP POST: Error +CHTTPACT: 237



我正在努力让 AT 命令工作,这将使 3G SIM5230模块发出干净的 HTTP 请求。当我构建并发送我认为是一个好的请求时,我没有收到来自 Web 服务器的响应,只有错误 +CHTTPACT:237。我可以让模块发送无效的帖子(只需在命令中的 POST 前面添加一个空格),然后我从 Web 服务器 400 得到一个响应,告诉我这是一个无效的 http 请求。有人成功地用这个模块执行HTTP POST命令吗?

型号: SIMCOM_SIM5320A修订版:SIM5320A_V1.5

我在使用 SIM5320a 模块时也遇到了开机自检和获取问题。虽然此代码用于 GET,但类似的代码可用于 POST。

我发现棘手的一点是在 AT+CHTTPSSEND=86 命令之后发送哪些击键,以及要包含多少个字符(请注意,86 至关重要 - 它是字符数加上 6 = 用于回车和换行)。花了一段时间才弄清楚最后需要两个回车符和换行符。

我使用TERATERM进行测试。我现在已经为连接到SIM5320a的arduino uno制作了一些简单的代码(现在已经运行了一个多星期,每小时获取一次数据)。如果有人想要此代码,请向我发送请求。

太久 + SIM5320a

//This program is for a SIM5320A connection using TeraTerm (I am running this through an Arduino Uno that has been uploaded with a AT port-through script). The items in brackets are the keystrokes I used to make the request run. The information after -> is the expected result.

//SETUP
AT+CGDCONT=1,"IP","INSERT_YOUR_APN","0.0.0.0" (return) -> OK
AT+CGSOCKCONT=1,"IP","INSERT_YOUR_APN" (return) -> OK
AT+CSOCKSETPN=1 (return) -> OK
//Start HTTPS session
AT+CHTTPSSTART (return) -> OK
//Open HTTPS session at server
AT+CHTTPSOPSE="www.XXXXXXXXXXXXXXXX.com.au",80,1 (return) -> OK
//Send request - NOTE that the 86 is crucial - it is the number of characters in what you want to send plus 6 (6 carriage return and line feeds)
AT+CHTTPSSEND=86 (return) -> >
GET /SensorE.php?temp=11111&EC=3333 HTTP/1.1 
    (Ctrl M)
    (Ctrl J)
Host: www.XXXXXXXXXXXXXXXX.com.au:80 
    (Ctrl M)
    (Ctrl J)
    (Ctrl M)
    (Ctrl J) -> OK +CHTTPS: RECV EVENT
//Receive request
AT+CHTTPSRECV=4000 (return) -> lots of stuff we hope, but should contain the returned data from your website
//Close session at server (but will automatically after it gets a nice recv)
AT+CHTTPSCLSE (return) -> OK or error - it is ok if error pops up here
//Stop the http service
AT+CHTTPSSTOP (return) -> OK
//Power down the module
AT+CPOF

请验证您的实际型号,因为您说您拥有SIMCOM5320A模型并询问了SIM5230A。

如果您有SIMCOM5320A我认为您会收到该错误,因为该 AT 命令已被弃用。

您可以在此处查看 AT 命令SIMCOM5320A:AT 命令

最新更新