Afternoon all,
Not sure if this belongs here or networking...
I've spent ages on this one but can't find any answer. I have a SIM900 GSM module, I can create and send HTTP POST requests but cannot for the life of me work out how to do HTTPS POST requests. I'm int the office at the mo but will attach the code i'm using tonight.
Any help greatfully recieved.
Thanks
Dave
EDIT Code i'm using :
void generatePayload()
{
gsmSerial.println("AT+SAPBR=3,1,"Contype","GPRS"");
delay(1000);
gsmSerial.println("AT+SAPBR=3,1,"APN","mobile.o2.co.uk""); // APN
delay(1000);
gsmSerial.println("AT+SAPBR=3,1,"USER","o2web""); // User
delay(1000);
gsmSerial.println("AT+SAPBR=3,1,"PWD","password""); // Password
delay(1000);
gsmSerial.println("AT+SAPBR=1,1"); // Enable the GPRS
delay(1000);
gsmSerial.println("AT+SAPBR=2,1"); // Query connection is setup properly, reply IP address then ok.
delay(1000);
gsmSerial.println("AT+HTTPINIT"); // Initialise http connection
delay(1000);
gsmSerial.println("AT+HTTPSSL=1"); // ** Optional only include if url is https! **
delay(1000);
gsmSerial.println("AT+HTTPPARA="CID",1"); // Set up the HTTP bearer profile identifier.
delay(1000);
gsmSerial.println("AT+HTTPPARA="URL","" + postURL + """); // Server address url
delay(2000);
gsmSerial.println("AT+HTTPPARA="CONTENT","application/json""); // Set returning content header
delay(2000);
gsmSerial.println("AT+HTTPDATA=" + String(postString.length()) + ",100000"); // Get & set poststring (message body) length & timeout 10 seconds
delay(2000);
gsmSerial.println(postString); // Send poststring (message body) to SIM900
delay(3000);
gsmSerial.println("AT+HTTPACTION=1"); // Start the HTTP POST session
delay(3000);
gsmSerial.println("AT+HTTPREAD=20,20"); // Read server reply (200, all ok)
delay(1000);
updateSerial();
gsmSerial.println("AT+HTTPTERM"); // Terminate the session.
delay(1000);
updateSerial;
}