4

我有一个使用 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)

可能是什么问题?

这是串口终端的回复

在此处输入图像描述

4

2 回答 2

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)
于 2015-12-01T18:54:39.547 回答
0

我个人观察到省略(ctrl+m)(ctrl+j)组合的常见错误。在上面的帖子中,前五行属于,HTTP header第六行是HTTP body。请注意,第五行应以两组carriage returnline feed结束,以表示结束HTTP header

另外,等到CIPSTART返回CONNECT OK,然后等到> appears afterCIPSEND`。

如果您正在GET/POST使用动态 IP 的页面,您的代码应该足够快到fetch/postIP 更改之前的页面。

祝你今天过得愉快....

于 2017-02-06T18:10:43.523 回答