2017-06-22 5 views
0

J'essaie d'envoyer des données depuis un serveur web vers un serveur web (LAMP) en utilisant le module ESP8266, quand je fais un POST sur un serveur de réseau local, le serveur reçoit les données et renvoie 200 , cependant, quand je poste sur un serveur externe (Hébergement ou google cloud), il enregistre l'erreur 400 dans le journal Apache et ne renvoie rien, mais quand je fais le même type de demande par Postman, tout va bien, à cause de cela, je ne savoir si c'est ma faute lors du montage ou de l'exécution de la requête ou si un bloc est sur les serveurs externes car le serveur http de mon réseau fonctionne.La requête POST ne fonctionne pas sur les serveurs externes

J'utilise cette lib pour travailler avec ESP: https://github.com/itead/ITEADLIB_Arduino_WeeESP8266

C'est la chaîne de demande:

POST /data/sensor_test.php HTTP/1.1 
Host: xxxxxxxxx.com 
Accept: */* 
Content-Length: 188 
Content-Type: application/x-www-form-urlencoded 
Cache-Control: no-cache 

temperatureAir1=19.70&humidityAir1=82.30&temperatureAir2=19.40&humidityAir2=78.60&externalTemperature=19.31&illumination05=898&illumination10=408&humiditySoilXD28=6&humiditySoilYL69=5 
+0

Je vois 183 octets de données non 188. –

Répondre

0

J'ai trouvé le problème, quand je CONCATENE les chaînes qui composent la demande que j'étais faire des sauts de ligne avec \ n, je suis passé à \ r \ n et ça a marché! La quantité d'octets est vraiment avec erreur, je vois pour corriger, mais la bonne chose est que maintenant la demande est bonne.