我有一个网站,用post方法接受json数据。当我尝试从POSTMAN rest客户端发送请求时,它工作正常。 当我尝试使用AT命令时它失败了。
这是我试过的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)
可能是什么问题?
这是来自串口终端的回复
答案 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 feed
和HTTP header
结尾,以表示CIPSTART
的结束。
此外,请等到CONNECT OK
返回> appears after
,然后等到GET/POST
CIPSEND`。
如果你是fetch/post
一个包含动态IP的页面,那么在IP更改之前,你的代码应该足够快{{1}}页面。
度过愉快的一天......