exchanging data between HTTP server and c

rasty1 wrote on Saturday, July 16, 2016:

Hi,
I’m trying to find information regarding interface between HTTP server and c.
I was searching source code for CGI, but did not find anything.
Is there any example or documenation?
I need to read data (string, numeric) from form and put results back.

Thanks
Rasty

rtel wrote on Saturday, July 16, 2016:

You can do this using AJAX. See http://www.w3schools.com/ajax/

rasty1 wrote on Saturday, July 16, 2016:

I’d appreciate any example that we can follow.

rasty1 wrote on Saturday, July 16, 2016:

I googled internet for AJAX and FreeRTOS and did not find anything usable.
There is simple example that shows dynamic change of page from local file, which is nice, but how to exchange data with run-time, not via files?

heinbali01 wrote on Saturday, July 16, 2016:

The HTTP server as it is currently, doesn’t have any hooks yet to pass data to the application. But it would certainly be very useful.

The approach that I like is using JQuery, which is a library “on top of” JS and AJAX. The JQuery application in the browser will send requests to the embedded application in a form like this:

    /request?temperature=?
    /request?temperature=23.5

Or using JSON expressions:

    /request?add={"colour":"red","weight":1200}

When loading pages, the browser sends GET commands. The above requests will also be sent as a GET. The difference is the question mark: if it is present the HTTP driver will no even attempt to search for a directory or file named “/request”. In stead the string will be forwarded

rasty1 wrote on Sunday, July 17, 2016:

" In stead the string will be forwarded" to … ?
I played a little bit with AJAX and lhttpd on Linux, it can pass strings (via CGI) to python script.
What would be equivalent in FreeRTOS httpd?

heinbali01 wrote on Sunday, July 17, 2016:

I played a little bit with AJAX and lhttpd on Linux,
it can pass strings (via CGI) to python script.

Great. Maybe you can you record this communication by running WireShark? The you can see what HTTP commands are exchanged, literally.

What would be equivalent in FreeRTOS httpd?

For instance, like I described shortly here above.

I’m thinking of a callback that can be defined in the application:

    BaseType_t xHTTPApplicationHook( char *pcCommand, size_t uxMaxLength )
	{
	}

The function will check the command and write the reply into the same buffer.

rasty1 wrote on Sunday, July 17, 2016:

Command

Above is simple request, it starts python script and sends DIR command via python to the target. It is not ajax - I didn’t managed to access form field from ajax - I’ll finish ajax example in few days.

When do you think xHTTPApplicationHook will be available?

rasty1 wrote on Sunday, July 24, 2016:

Hi,
Everything works fine once I set correct gateway address.
When do you think you will have application Hooks for Dymamic contents?

Best regards
rasty

heinbali01 wrote on Sunday, July 24, 2016:

Still on holiday, but I restart on the first of August. If you write me an email ( h point tibosch on freertos point org ), we’ll make a setup for this and test it.

Regards, Hein