Hey guys,
I've got an DFRobot SIM808 Shield up and running with the GET example from their library:
click me
Now I need to post some sensor data to a server and I am trying to get a POST request running.
But it's not working. I guess there is something wrong with my chars "http_cmd" or "payload".
Could someone please help me with that?
Thank you! =)
#include <DFRobot_sim808.h>
#define APN "internet.telekom"
#define BN "telekom"
#define PW "telekom"
DFRobot_SIM808 sim808(&Serial);
char http_cmd[] = "POST /t/p9msd-1524305850/post HTTP/1.1\r\n\r\n";
char payload[] = "{Name:Alfred&Age:29}";
char buffer[512];
void setup(){
//mySerial.begin(9600);
Serial.begin(9600);
//******** Initialize sim808 module *************
while(!sim808.init()) {
delay(1000);
Serial.print("Sim808 init error\r\n");
}
delay(3000);
//*********** Attempt DHCP *******************
while(!sim808.join(F(APN), F(BN), F(PW))) {
Serial.println("Sim808 join network error");
delay(2000);
}
//************ Successful DHCP ****************
Serial.print("IP Address is ");
Serial.println(sim808.getIPAddress());
//*********** Establish a TCP connection ************
if(!sim808.connect(TCP,"ptsv2.com", 80)) {
Serial.println("Connect error");
}else{
Serial.println("Connect to server success");
}
//*********** Send a GET request *****************
Serial.println("waiting to fetch...");
sim808.send(http_cmd, sizeof(http_cmd)-1);
sim808.send(payload, sizeof(payload)-1);
while (true) {
int ret = sim808.recv(buffer, sizeof(buffer)-1);
if (ret <= 0){
Serial.println("fetch over...");
break;
}
buffer[ret] = '\0';
Serial.print("Recv: ");
Serial.print(ret);
Serial.print(" bytes: ");
Serial.println(buffer);
break;
}
//************* Close TCP or UDP connections **********
sim808.close();
//*** Disconnect wireless connection, Close Moving Scene *******
sim808.disconnect();
}
void loop(){
}