2015-11-25 1 views
1

J'ai un site Web qui accepte les données json avec la méthode post. Cela fonctionne très bien lorsque j'essaye d'envoyer la requête depuis le client de repos POSTMAN. Quand j'essaye de faire la même chose avec les commandes AT, c'est l'échec.envoyer des données JSON au serveur en utilisant les commandes AT

enter image description here

C'est la séquence AT i essayé

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) 

Quel pourrait être le problème?

C'est la réponse du terminal série

enter image description here

Répondre

2

Résolu le problème. Après AT + CIPSEND le message doit être comme celui-ci >

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) 
0

J'ai personnellement observé des erreurs communes en omettant (ctrl+m)(ctrl+j) combinaisons. Dans le message ci-dessus, les cinq premières lignes appartient à HTTP header et la sixième ligne est le HTTP body. Notez que la cinquième ligne doit se terminer par deux ensembles de carriage return et line feed pour indiquer la fin de HTTP header.

En outre, attendez CIPSTART renvoie CONNECT OK et attendez jusqu'à > appears after CIPSEND`.

Si vous êtes GET/POST -sur une page avec IP dynamique, votre code devrait être assez rapide à fetch/post la page avant que l'IP ne change. Bonne journée ...