10 years, 8 months ago.

passing variable into http query

I have all my system set up and it works very well when i pass to param1 in my .php file on my server. the problem i'm having is finding the right syntax to pass - eg. float Lat(it has a lat value) - into the place where i have 60.654321 in my get request. I'm a little bit stumped on this, and i know it's probably very simple.

I would like to pass a variable into this part of the code: line 32

int ret = http.get("http://reskiproject.com/save.php?param1=60.654321", str, 128);

ie. replace 60.654321 with the value of

float Lat;

does anyone have any small code example in reference to this problem. Thanks in advance.

#include "mbed.h"
#include "EthernetInterface.h"
#include "HTTPClient.h"
#include "xbee.h"

xbee xbee1(p9,p10,p11); //Initalise xbee_lib
Serial pc(USBTX,USBRX);

EthernetInterface eth;
HTTPClient http;
char str[512];

char GPS_DATA[48]; //Xbee buffer size is 202 bytes
float Lat = 0.0;

 
int main() 
{
    eth.init(); //Use DHCP

    eth.connect();
    
      while(1) {
        pc.printf("Waiting for Gps Data from Sensor Xbee\n\r");
        xbee1.RecieveData(GPS_DATA,19); //Read data from the XBee
        pc.printf("%s\n\r",GPS_DATA); //Send data to XBee              
        sscanf(GPS_DATA,"%f,",&Lat); 
        pc.printf("Lat: %2.6f\n\r",Lat);  
    
    //GET data
    printf("\n\rTrying to fetch page...\n\r");
    int ret = http.get("http://reskiproject.com/save.php?param1=60.654321", str, 128);
    if (!ret)
    {
      printf("Page fetched successfully - read %d characters\n\r", strlen(str));
      printf("Result: %s\n\r", str);
    }
    else
    {
      printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
    }
    }

1 Answer

10 years, 8 months ago.

I found the solution to this problem by adding this code-

    HTTPText txt(str, 512);
    printf("\n\rTrying to fetch page...\n\r");
    sprintf(url, "http://reskiproject.com/save.php?param1=%f&param2=%f", Lon, Lat);
    int ret = http.get(url, &txt);

and here is the complete code that will send our lat/lon values it gets by xbee from another microcontroller to our webpage .php and shows in google maps api.

#include "mbed.h"
#include "EthernetInterface.h"
#include "HTTPClient.h"
#include "xbee.h"

xbee xbee1(p9,p10,p11); //Initalise xbee_lib
Serial pc(USBTX,USBRX);

EthernetInterface eth;
HTTPClient http;
char str[512];


char url[100];
char GPS_DATA[48]; //Xbee buffer size is 202 bytes
float Lat = 0.0;
float Lon = 0.0;
 
int main() 
{
    eth.init(); //Use DHCP

    eth.connect();
    
      while(1) {
        pc.printf("Waiting for Gps Data from Sensor Xbee\n\r");
        xbee1.RecieveData(GPS_DATA,19); //Read data from the XBee
        pc.printf("%s\n\r",GPS_DATA); //Send data to XBee              
        sscanf(GPS_DATA,"%f,%f",&Lon,&Lat); 
        pc.printf("Lon: %2.6f  Lat: %2.6f\n\r",Lon,Lat);  
    
    //GET data
    HTTPText txt(str, 512);
    printf("\n\rTrying to fetch page...\n\r");
    sprintf(url, "http://reskiproject.com/save.php?param1=%f&param2=%f", Lon, Lat);
    int ret = http.get(url, &txt);
    //int ret = http.get("http://reskiproject.com/save.php?param1=60.654321&param2=24.123456", str, 128);
    if (!ret)
    {
      printf("Page fetched successfully - read %d characters\n\r", strlen(str));
      printf("Result: %s\n\r", str);
    }
    else
    {
      printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
    }
    }
}

I hope this helps anyone else who has to do this kind of thing from microcontroller to webpage. i have the php file code from the webserer side if somebody would like to know about that to.

Accepted Answer

do you have the php file code from the webserver side?? thank you in advance..

posted by Peram Kumar Balakrishnan 09 May 2016