Comme l'envoi ne marche pas, j'envoie des requêtes GET à d'autre serveur comme 'www.google.com' et 'www.facebook.com' et ça marche. Mais avec GET au serveur qu'on m'a demandé les données ne marche toujours pas, cela me renvoie un statut code: 604 ou 601 des fois. voici le code:
Code:#include <SoftwareSerial.h> //SoftwareSerial mySerial(7, 8); //SIM900 Tx & Rx is connected to Arduino #9 & #10 SoftwareSerial mySerial(1,3); //SIM900 Tx & Rx is connected to NodeMCU #Tx & #Rx //const char *host = "192.168.1.104"; String immatriculation = "AZ1408RB"; int vitesse = 800; void testPostRequest(String urlencodedToSend){ sendCommand("AT"); ShowSerialData(); sendCommand("AT+CIPSHUT"); ShowSerialData(); delay(500); sendCommand("AT+SAPBR=0,1"); delay(2000); ShowSerialData(); sendCommand("AT+SAPBR=3,1,\"Contype\",\"GPRS\""); ShowSerialData(); sendCommand("AT+SAPBR=3,1,\"APN\",\"internet.mtn.bj\""); ShowSerialData(); sendCommand("AT+SAPBR=1,1"); ShowSerialData(); sendCommand("AT+SAPBR=2,1"); ShowSerialData(); sendCommand("AT+CGATT?"); // +CGATT: 1 --- Cela signifie que la connexion GPRS est active ShowSerialData(); sendCommand("AT+HTTPINIT"); delay(1000); ShowSerialData(); sendCommand("AT+HTTPPARA=\"CID\",1"); ShowSerialData(); // Activer le mode SSL/TLS pour HTTPS sendCommand("AT+HTTPSSL=1"); delay(2000); ShowSerialData(); //String url = "https://www.google.com" ; //String url = "https://www.facebook.com"; String url = "https://dgl-api.e-gbavou.com/api/voitures"; sendCommand(("AT+HTTPPARA=\"URL\",\"" + url + "\"").c_str()); ShowSerialData(); //sendCommand("AT+HTTPPARA=\"CONTENT\",\"application/x-www-form-urlencoded\""); sendCommand("AT+HTTPPARA=\"CONTENT\",\"application/json\""); ShowSerialData(); sendCommand(("AT+HTTPDATA=" + String(urlencodedToSend.length()) + ",20000").c_str()); delay(6000); //Envoi des données x-www-form-urlencoded mySerial.println(urlencodedToSend); delay(1000); ShowSerialData(); Serial.println(urlencodedToSend); delay(1000); sendCommand("AT+HTTPACTION=1"); // requête POST delay(10000); ShowSerialData(); // sendCommand("AT+HTTPACTION=0"); // requête GET // delay(10000); // ShowSerialData(); sendCommand("AT+HTTPREAD"); delay(300); ShowSerialData(); sendCommand("AT+HTTPTERM"); ShowSerialData(); sendCommand("AT+CIPSHUT"); ShowSerialData(); } void sendCommand(const char* command) { Serial.print("C: "); Serial.print(command); mySerial.println(command); delay(1000); } void ShowSerialData() { while (mySerial.available()) { Serial.write(mySerial.read()) ; //Serial.println( ); } while (Serial.available()) { mySerial.write(Serial.read()); Serial.println( ); } } void setup() { int baudRate = 115200; Serial.begin(baudRate); // Serial monitor mySerial.begin(baudRate); // GSM module delay(7000); } void loop() { String urlencodedToSend = "{\"immatriculation\":\"immatriculation\", \"vitesse\":\" String(vitesse)\"}" ; //String urlencodedToSend= "immatriculation=" + immatriculation + "&vitesse=" + vitesse ; Serial.print("urlencodedToSend: "); Serial.println(urlencodedToSend); testPostRequest(urlencodedToSend) ; }
-----