使用AT命令将{JSON数据发送到服务器

时间:2015-11-25 19:07:07

标签: at-command gprs sim900

我有一个网站,用post方法接受json数据。当我尝试从POSTMAN rest客户端发送请求时,它工作正常。 当我尝试使用AT命令时它失败了。

enter image description here

这是我试过的AT序列

AT
AT+CREG? 
AT+CGATT?
AT+CIPSHUT
AT+CIPSTATUS
AT+CIPMUX=0 
AT+CGDCONT=1,"IP","airtelgprs.com"
AT+CSTT="airtelgprs.com"
AT+CIICR
AT+CIFSR
AT+CIPSTATUS
AT+CIPSTART= "TCP","obdsam.herokuapp.com","80"
AT+CIPSEND
>
POST /newtasks HTTP/1.1 (Ctrl+M + Ctrl+J)
HOST: obdsam.herokuapp.com" (Ctrl+M + Ctrl+J)
Accept: application/json (Ctrl+M + Ctrl+J)
Content-Type: application/json (Ctrl+M + Ctrl+J)
{"RPM":"41","ECT":"20"} (Ctrl+M + Ctrl+J)
(ctrl+j)(ctrl+z)

可能是什么问题?

这是来自串口终端的回复

enter image description here

2 个答案:

答案 0 :(得分:2)

解决了这个问题。在AT + CIPSEND之后,消息必须是这样的 >

POST /newtasks HTTP/1.1 (Ctrl+M + Ctrl+J)
HOST: obdsam.herokuapp.com (Ctrl+M + Ctrl+J)
Accept: application/json (Ctrl+M + Ctrl+J)
Content-Type: application/json(Ctrl+M + Ctrl+J)
Content-Length: 23 (Ctrl+M + Ctrl+J) (Ctrl+M + Ctrl+J)
{"RPM":"55","ECT":"55"} (Ctrl+M + Ctrl+J)(ctrl+j)(ctrl+z)

答案 1 :(得分:0)

我个人观察到省略HTTP header组合时的常见错误。在上面的帖子中,前五行属于HTTP body,第六行是carriage return。请注意,第五行应以两组line feedHTTP header结尾,以表示CIPSTART的结束。

此外,请等到CONNECT OK返回> appears after,然后等到GET/POST CIPSEND`。

如果你是fetch/post一个包含动态IP的页面,那么在IP更改之前,你的代码应该足够快{{1}}页面。

度过愉快的一天......