使用 AT 命令向服务器发送 Json 数据
sending Json data to server using AT commands
我有一个网站接受 json 数据 post method.It 当我尝试从 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)
可能是什么问题?
这是串口终端的回复
问题已解决。 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)
我个人观察到省略 (ctrl+m)(ctrl+j)
组合的常见错误。在上面的 post 中,前五行属于 HTTP header
,第六行属于 HTTP body
。注意第五行应该以两组carriage return
和line feed
结束,表示HTTP header
结束。
另外,等到 CIPSTART
returns CONNECT OK
,等到 > appears after
CIPSEND`。
如果您正在 GET/POST
-ing 具有动态 IP 的页面,您的代码应该足够快以 fetch/post
IP 更改之前的页面。
祝你有愉快的一天....
我有一个网站接受 json 数据 post method.It 当我尝试从 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)
可能是什么问题?
这是串口终端的回复
问题已解决。 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)
我个人观察到省略 (ctrl+m)(ctrl+j)
组合的常见错误。在上面的 post 中,前五行属于 HTTP header
,第六行属于 HTTP body
。注意第五行应该以两组carriage return
和line feed
结束,表示HTTP header
结束。
另外,等到 CIPSTART
returns CONNECT OK
,等到 > appears after
CIPSEND`。
如果您正在 GET/POST
-ing 具有动态 IP 的页面,您的代码应该足够快以 fetch/post
IP 更改之前的页面。
祝你有愉快的一天....