How do i get the request body?

Hello guys,

    I'm developing a nginx module, the intent is to get the request

body, then write some response depends on what request body is.
I’ve called the method ngx_http_read_client_request_body (r,
ngx_http_myModule_handler);

    Since this code, i want to get the real request body in

ngx_http_myModule_handler()
Here are my codes …

    void ngx_http_myModule_handler(ngx_http_request_t *r)

{
ngx_http_finalize_request(r, NGX_DONE);

if(!(r->request_body->bufs == NULL)){
    ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "request is 

not
empty.");

}

}

 the questions is , how can i get the r->request_body->bufs to char 
  • ?

Posted at Nginx Forum:

Hello!

On Wed, Jan 01, 2014 at 11:44:24PM -0500, humank wrote:

 the questions is , how can i get the r->request_body->bufs to char * ?

A request body is available as a series of
buffers in r->request_body->bufs. To understand more about
buffers, try reading Evan M.'s guide as available from here:

Some example code which uses r->request_body->bufs to access
request body contents as available in memory can be found in
src/http/ngx_http_variables.c, in the
ngx_http_variable_request_body() function.

Note though, that depending on a configuration and a request, the
request body may not be available in memory at all (that is, it
will be in temporary file, and there will be a file buffer in
r->request_body->bufs).


Maxim D.
http://nginx.org/

Maxim D. Wrote:

ngx_http_myModule_handler);
ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "request
buffers in r->request_body->bufs. To understand more about
request body may not be available in memory at all (that is, it
nginx Info Page
Hi Maxim,
Thanks for your reply, i have get the body from the sample code
src/http/ngx_http_variables.c.
Next time i will try to grep all the source code first while facing
the
unknown problems :smiley:

Posted at Nginx Forum: