Finally got some working code. Registered the parser for the content type:

  apreq_register_parser("application/json", apreq_parse_generic);

in a pre_init hook, then normal apreq_handle_apache2 and apreq_body calls, then 
a apreq_parser_get call to get the parser and:

  dummy = *(apreq_param_t **)parser->ctx;
  apr_brigade_pflatten(dummy->upload, &val, &vlen, r->pool);

to get the string of the body in val/vlen.  Is there a better way?

Thanks,

Brian

On Nov 9, 2013, at 9:32 AM, Joseph Schaefer <joe_schae...@yahoo.com> wrote:

> The generic parser stores the POST data in the upload
> brigade of a  param named “_dummy_” but it’s not in
> the output table, its in the parser’s ctx pointer.
> The struct is declared in parser.c so it’s technically
> private but the param is in the first slot and that’s
> meant to be public.
> 
> On Nov 8, 2013, at 1:02 PM, Joseph Schaefer <joe_schae...@yahoo.com> wrote:
> 
>> Been a while since I thought about this, but
>> apreq is really only suited for table-based
>> data structures.  JSON is a little too generic
>> for that unless you know the data is restricted
>> to only key-value pairs.
>> 
>> On Nov 8, 2013, at 12:45 PM, Brian J. France <br...@brianfrance.com> wrote:
>> 
>>> Does anybody have example code of how to use apreq_parse_generic in an 
>>> httpd module hook (non-handler)?
>>> 
>>> Need to use apreq2 and mod_apreq2 to read json data and not having any luck.
>>> 
>>> Thanks,
>>> 
>>> Brian
>>> 
>>> - Please keep me looped into any reply, not subscribed.
>> 
> 
> 

Reply via email to