Hi,

According to the documentation:
http://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html#microhttpd_002dcb
> for a POST that fits into memory and that is encoded with a supported 
> encoding, the POST data will NOT be given in upload_data and is instead 
> available as part of MHD_get_connection_values();

So I tried to trigger such case to understand it better. I wrote a
simple handler and used curl as a client:
curl -v -d "foo" http://127.0.0.1:8080/

This is what I got:
[access_handler] *con_cls:(nil) *upload_data_size:0
[access_handler] *con_cls:0x16ff7a0 *upload_data_size:3
[access_handler] *con_cls:0x16ff7a0 *upload_data_size:0

It seems that my request:
1) Should fit memory (Content-Length: 3)
2) Should be supported (Content-Type: application/x-www-form-urlencoded)
but POST was passed using upload_data anyway.

Why did it happen? According to the documentation I expected
*upload_data_size to be always 0. I also expected I'll need to use
MHD_get_connection_values().


Two more comments from me:

1) Handling requests
http://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html#microhttpd_002drequests
This would be nice to write something about handling POST data with
MHD_get_connection_values

2) Adding a POST processor
http://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html#microhttpd_002dpost
It doesn't mention MHD_get_connection_values at all.

-- 
Rafał

Reply via email to