Had my first encounter with Ubidots, not using the library they published, I prefer to do the code manually so I know exactly what happens for debugging purposes. I got my test device - arduino mega with SIM900 module - to send variable to ubidots, updates regularly without fail. Now I’m trying to get a value from one variable in the cloud in order to switch on pin13, the html GET request sends OK but the ubidots server does not respond. The only response I get is 408 (timout) a couple minutes after the request was sent. “Your browser didn’t send a complete request in time.”
Ubidots support says the syntax is received correct at their end and that it must be with my device. After the request is sent it goes over to loop where it continually checks the SIM900 for a response. I know this part of the code is good because the same code works perfectly to receive the response from the server when I send a POST request.
Exchanges between my device and ubidots below. Any ideas why the server ignores what I send? I use the exact syntax as per the REST API docs with correct token and labels. What is missing from my request body?
AT+CIPSPRT=0 OK AT+CIPSTART="TCP","http://things.ubidots.com","80" OK CONNECT OK AT+CIPSEND=123 GET /api/v1.6/devices/demovolts/pin13switch/?token=xxxxxxxxxx HTTP/1.1 Host: things.ubidots.com SEND OK HTTP/1.0 408 Request Time-out Cache-Control: no-cache Connection: close Content-Type: text/html <html><body><h1>408 Request Time-out</h1> Your browser didn't send a complete request in time. </body></html> CLOSED