HTTP::Body - HTTP Body Parser |
HTTP::Body - HTTP Body Parser
use HTTP::Body; sub handler : method { my ( $class, $r ) = @_;
my $content_type = $r->headers_in->get('Content-Type'); my $content_length = $r->headers_in->get('Content-Length'); my $body = HTTP::Body->new( $content_type, $content_length ); my $length = $content_length;
while ( $length ) {
$r->read( my $buffer, ( $length < 8192 ) ? $length : 8192 );
$length -= length($buffer); $body->add($buffer); } my $uploads = $body->upload; # hashref my $params = $body->param; # hashref my $body = $body->body; # IO::Handle }
HTTP::Body parses chunks of HTTP POST data and supports application/octet-stream, application/x-www-form-urlencoded, and multipart/form-data.
Chunked bodies are supported by not passing a length value to new().
It is currently used by Catalyst to parse POST bodies.
When parsing multipart bodies, temporary files are created to store any uploaded files. You must delete these temporary files yourself after processing them.
Christian Hansen, ch@ngmedia.com
Sebastian Riedel, sri@cpan.org
Andy Grundman, andy@hybridized.org
This library is free software. You can redistribute it and/or modify it under the same terms as perl itself.
HTTP::Body - HTTP Body Parser |