How do i get the request body ?

humank nginx-forum at nginx.us
Thu Jan 9 05:52:16 UTC 2014


Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
> 
> On Wed, Jan 01, 2014 at 11:44:24PM -0500, humank wrote:
> 
> > 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 * ?
> 
> A request body is available as a series of 
> buffers in r->request_body->bufs.  To understand more about 
> buffers, try reading Evan Miller's guide as available from here:
> 
> http://www.evanmiller.org/nginx-modules-guide.html
> 
> 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 Dounin
> http://nginx.org/
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx


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 :D

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,245952,246137#msg-246137



More information about the nginx mailing list