You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modules-dev@httpd.apache.org by pranil dasika <pr...@gmail.com> on 2009/11/20 22:01:45 UTC

Reading post parameters from apache request

Hi,

I am trying to write a custom module where I need to read post parameters
from the request. I guess apreq library is relevant to this but could not
find any substantial examples or documents.
Is there any other way to read the params other than apreq. Any pseudocode/
examples will be appreciated.

Thanks,
Pranil

Re: Reading post parameters from apache request

Posted by pranil dasika <pr...@gmail.com>.
On Mon, Nov 30, 2009 at 8:49 AM, Yoichi Kawasaki <yo...@gmail.com> wrote:

> 2009/11/21 Sorin Manolache <so...@gmail.com>:
> > On Fri, Nov 20, 2009 at 22:01, pranil dasika <pr...@gmail.com>
> wrote:
> >> Hi,
> >>
> >> I am trying to write a custom module where I need to read post
> parameters
> >> from the request. I guess apreq library is relevant to this but could
> not
> >> find any substantial examples or documents.
> >> Is there any other way to read the params other than apreq. Any
> pseudocode/
> >> examples will be appreciated.
> >>
> >> Thanks,
> >> Pranil
> >>
> >
> > Here you have an example. It is not optimal, you could, for example,
> > take the brigade creation out of the loop and clean the brigade at the
> > end of each iteration, after you extracted the data.
> >
> > apr_bucket_brigade *bb;
> > do {
> >   bb = apr_brigade_create(req->pool, req->connection->bucket_alloc);
> >   if (0 == bb)
> >        // error
> >   if (APR_SUCCESS != ap_get_brigade(req->input_filters, bb,
> > AP_MODE_READBYTES, APR_BLOCK_READ, 9216))
> >        // error
> >   extract data from bb;
> > } while (EOS not yet encountered in bb);
> >
> >
> > S
> >
>
>
> Hi
>
> I  have an another example. I read post parameters in the source code
> below:
>
> http://github.com/yokawasa/mod_akismet/blob/master/mod_akismet.c#L647
> line: 647 - 705
>
> hope this helps you.
>
> Yoichi
>
> --
> Yoichi Kawasaki <yo...@gmail.com>
>



Sorin, Yoichi,

Thanks for your responses. The below code worked for me using apreq.

const apr_table_t* args;
apreq_handle_t* h = apreq_handle_apache2(r);
apreq_body(h, &args);
const char *params = apreq_params_as_string(r->pool, args, NULL,
APREQ_JOIN_QUOTE);


-Pranil

Re: Reading post parameters from apache request

Posted by Yoichi Kawasaki <yo...@gmail.com>.
2009/11/21 Sorin Manolache <so...@gmail.com>:
> On Fri, Nov 20, 2009 at 22:01, pranil dasika <pr...@gmail.com> wrote:
>> Hi,
>>
>> I am trying to write a custom module where I need to read post parameters
>> from the request. I guess apreq library is relevant to this but could not
>> find any substantial examples or documents.
>> Is there any other way to read the params other than apreq. Any pseudocode/
>> examples will be appreciated.
>>
>> Thanks,
>> Pranil
>>
>
> Here you have an example. It is not optimal, you could, for example,
> take the brigade creation out of the loop and clean the brigade at the
> end of each iteration, after you extracted the data.
>
> apr_bucket_brigade *bb;
> do {
>   bb = apr_brigade_create(req->pool, req->connection->bucket_alloc);
>   if (0 == bb)
>        // error
>   if (APR_SUCCESS != ap_get_brigade(req->input_filters, bb,
> AP_MODE_READBYTES, APR_BLOCK_READ, 9216))
>        // error
>   extract data from bb;
> } while (EOS not yet encountered in bb);
>
>
> S
>


Hi

I  have an another example. I read post parameters in the source code below:

http://github.com/yokawasa/mod_akismet/blob/master/mod_akismet.c#L647
line: 647 - 705

hope this helps you.

Yoichi

-- 
Yoichi Kawasaki <yo...@gmail.com>

Re: Reading post parameters from apache request

Posted by Sorin Manolache <so...@gmail.com>.
On Fri, Nov 20, 2009 at 22:01, pranil dasika <pr...@gmail.com> wrote:
> Hi,
>
> I am trying to write a custom module where I need to read post parameters
> from the request. I guess apreq library is relevant to this but could not
> find any substantial examples or documents.
> Is there any other way to read the params other than apreq. Any pseudocode/
> examples will be appreciated.
>
> Thanks,
> Pranil
>

Here you have an example. It is not optimal, you could, for example,
take the brigade creation out of the loop and clean the brigade at the
end of each iteration, after you extracted the data.

apr_bucket_brigade *bb;
do {
   bb = apr_brigade_create(req->pool, req->connection->bucket_alloc);
   if (0 == bb)
        // error
   if (APR_SUCCESS != ap_get_brigade(req->input_filters, bb,
AP_MODE_READBYTES, APR_BLOCK_READ, 9216))
        // error
   extract data from bb;
} while (EOS not yet encountered in bb);


S