On 25 juil. 2012, at 22:11, Simon Newton wrote:

> On Tue, Jul 24, 2012 at 11:15 PM, [email protected]
> <[email protected]> wrote:
>> Hey all,
>> 
>> I'm a new-ish user of libmicrohttpd and have over the past couple weeks
>> ventured for the first time into using POST data.
>> 
>> I'm implementing a server that has thusfar only used GET and we were getting
>> all of the key-value pairs using MHD_get_connection_values.  Something like:
>> 
>>    typedef std::pair<std::string, std::string> TArg;
>>    typedef std::vector<TArg> TArgs;
>> 
>> static int _get_params (void *cls, enum MHD_ValueKind , const char *key,
>> const char *data)
>> {
>> TArgs* args = (TArgs*)cls;
>> TArg arg(key, (data ? data : ""));
>> args->push_back (arg);
>> return MHD_YES;
>> }
>> 
>> and then in the answer callback passed to MHD_start_daemon, there's a line:
>> 
>> TArgs args;
>> MHD_get_connection_values (connection, t, _get_params, &args);
>> 
>> Ensuring that _get_params will be iterated over to get all the values and
>> stock them in TArgs.
>> 
>> All of this works well in GET and we'd like to set up the same thing in
>> POST.  However, reading over POST, I don't see a clean way to iterate over
>> keys and values in the same manner.  I've followed through the tutorials and
>> can create postprocessors for single keys that handle uploads of large
>> chunks of data, but I can't figure out how to do the above sort of
>> manipulation.  Does anyone have any intuition about how the above could be
>> done via POST?
> 
> http://code.google.com/p/open-lighting/source/browse/olad/HttpServer.cpp
> 
> That accumulates the key: value pairs in a map (since we don't care
> about multiple keys in this case).
> 
> Simon
> 
>> 
>> Cheers,
>> Mike
> 

That's exactly what I needed -  thank you!
~Mike

Reply via email to