Reputation: 1
I'm trying to send data from Arduino to my server using get method. Using sim800L & Arduino Nano through AT Commands.
GSM_serial.print("+++");
updateSerial();
delay(1000);
GSM_serial.print("AT\r\n");
updateSerial();
delay(1000);
GSM_serial.print("ATE1\r\n");
updateSerial();
delay(1000);
GSM_serial.print("AT+CGATT=1\r\n");
updateSerial();
delay(1000);
GSM_serial.print("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n");
updateSerial();
delay(1000);
GSM_serial.print("AT+SAPBR=3,1,\"APN\",\"");
updateSerial();
GSM_serial.print(AccessPointName);
updateSerial();
GSM_serial.print("\"\r\n");
updateSerial();
delay(1000);
GSM_serial.print("AT+SAPBR=1,1\r\n");
updateSerial();
delay(3000);
GSM_serial.print("AT+HTTPINIT\r\n");
updateSerial();
delay(1000);
GSM_serial.print("AT+HTTPPARA=\"CID\",1\r\n");
updateSerial();
delay(2000);
GSM_serial.print("AT+HTTPPARA=\"URL\",\"");
GSM_serial.print(HTTPserver);// defined above as #define HTTPserver
"http://--------.me"
GSM_serial.print(HTTPurl);//defined above as #define HTTPurl "/d.php?"
GSM_serial.print(message);// message is i=1&f=2
// total url is http://---------.me/d.php?i=1&f=2
GSM_serial.print("\"\r\n");
updateSerial();
delay(2000);
GSM_serial.print("AT+HTTPACTION=0\r\n");
updateSerial();
delay(6000);
GSM_serial.print("AT+HTTPTERM\r\n");
updateSerial();
Result in serial Monitor:
AT OK ATE1 OK AT+CGATT=1 OK AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","touch" OK AT+SAPBR=1,1 OK Connected AT+HTTPINIT OK AT+HTTPPARA="CID",1 OK AT+HTTPPARA="URL","https://system.fabricaid.me/d.php?i=1&f=2" AT+HTTPACTION=0 OK +HTTPACTION: 0,603,0 AT+HTTPTERM OK AT+S
Expected HTTP Action should be 200 instead of 603
+HTTPACTION: 0,603,0
Upvotes: 0
Views: 764
Reputation: 71
You need to escape both ? and &. The whole URL should be
GSM_serial.println("AT+HTTPPARA=\"URL\",\"https://system.fabricaid.me/d.php\?i=1\&f=2\"");
Upvotes: 0